为啥cin能过,cin.getline不行?

P1914 小书童——凯撒密码

dp_hater @ 2022-06-23 21:01:32

这两个...天差地别


by Super_Supper @ 2022-06-23 21:29:42

应该是要读两次(?

反正我读两次就过了


by Super_Supper @ 2022-06-23 21:31:21

@Trinitrotoluene 确实是 ignore 出锅了(准确来说是使用),但是这并不跟读入数字和再读入字符串有关系


by Trinitrotoluene @ 2022-06-23 21:33:30

@sb_yyds 要不要试试 cin.ignore(50,'\n');


by Trinitrotoluene @ 2022-06-23 21:34:10

@sb_yyds 或者两遍 cin.getline(a,51);?


by ppip @ 2022-06-23 21:34:43

@sb_yyds 建议重学。

Linux换行符是LF,即\n


by Super_Supper @ 2022-06-23 21:36:21

是吗,我记错了。。。

话说我也是用的 Linux 写的代码啊,为什么和洛谷 ide 的结果不一样呢


by ppip @ 2022-06-23 21:38:14

@sb_yyds 还有,数据在哪造的换行符就什么样,与评测姬无关


by ppip @ 2022-06-23 21:40:34

@sb_yyds 我没看他代码,他是两行都用的getline?

如果是,我不会。

如果否,cin会把换行符留在缓冲区里,所以读两遍。


by Super_Supper @ 2022-06-23 21:40:52

@ppip

不是吧,显然如果在 Windows 系统下创建的传输到 Linux 就会多出一些控制符(按你的说法),所以以后造数据一定要在 Linux 系统下?


by Trinitrotoluene @ 2022-06-23 21:41:21

@ppip 就两行这个

cin.ignore(');
cin.getline(a,51);

上一页 | 下一页