我使用 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)
有人可以帮我理解这里的行为吗?