【发布时间】:2015-03-31 13:16:24
【问题描述】:
我在下面的代码中观察到 scanf() 的一些奇怪行为:
#include<stdio.h>
int main(void)
{
int n;
scanf("\n%d",&n); // 1 scanf
printf("N is entered=%d",n);
printf("\nAfter n being displayed\n");
scanf("%d\n",&n); // 2 scanf
prinf("n entered again =%d",n);
return 0;
}
我怀疑第二个scanf() 的行为。第一个 scanf() 将光标移动到下一行,然后接受输入,而在第二个 scanf() 中,将光标移动到下一行,然后在那里等待,直到我输入另一个整数。
为什么它提示我在下一行输入另一个整数,而不是显示在下一行输入的消息 n,即使它采用了正确的 n 值? 下面是输出:
2
N is entered=2
After n being displayed
45
543
n entered again=45
【问题讨论】:
-
@Ayushi Jha 如果您要编辑其他人的帖子,请出于正当理由进行。切换到/从美式/英式英语不是编辑帖子的理由,任何一种形式都可以。请参阅what you should have edited。