小编Raa*_*aja的帖子

scanf 格式中的空白字符问题

我使用 scanf 来读取输入,stdin因为 scanf 被认为比cin. 我发现了以下意外行为:

for(int i = 0; i<3; i++) {
    scanf("%d ", &t);
    printf("The input was %d\n", t);
}
Run Code Online (Sandbox Code Playgroud)

"%d "格式scanf有望读整数,之后忽略空格或换行字符。因此,预期的输出应该是这样的:

0
The input was 0
1
The input was 1
2
The input was 2
Run Code Online (Sandbox Code Playgroud)

但是我得到以下输出:

0
1
The input was 0
2
The input was 1
Run Code Online (Sandbox Code Playgroud)

有人可以帮我理解这里的行为吗?

c gcc scanf c++11

2
推荐指数
1
解决办法
60
查看次数

标签 统计

c ×1

c++11 ×1

gcc ×1

scanf ×1