C语言中scanf与回车的问题 发表于 2019-08-26 | 分类于 C/C++ | 暂无评论 假如输入abc[回车],使用scanf("%s")读取。将读取到abc并将其返回,但[回车]仍留在输入流中。 如果接着输入efg[回车]并使用scanf("%s")读取,这时候会将abc后面的[回车]自动抛弃,但是仍留下efg后面的[回车]。数字也同理。 **结论1:除了scanf("%c")之外,其他的读取都是在字符前碰到回车或空白字符自动抛弃,在字符后碰到回车或空白字符自动停止。** **但如果使用了scanf("%c")来读取,这时候回车或空白字符也就算是字符了。不会被自动清除。** 例子: 若代码为 `scanf("%c",&i); scanf("%c",&j);` 输入`a[回车]b`的话 结果为: i=a,j=[回车] 但如果中间加上`getchar();` 则最终结果为:i=a,j=b