在C语言中,为什么我的一个 scanf代码在第二次循环操作时,那步骤不执行了呢?

发布网友 发布时间:2022-04-23 22:08

我来回答

5个回答

热心网友 时间:2023-10-11 13:48

因为scanf输入要按回车,输入一个字符后回车,计算机实际上接收了两个字符,即:字符+回车。
试一下flushall(); or fflush(stdin);

热心网友 时间:2023-10-11 13:48

因为scanf输入要按回车,就这么简单。。。你输入的时候按了回车,回车指令还在等待执行,然后下一个scanf的时候就读入了这个回车

热心网友 时间:2023-10-11 13:49

char c[10];
for(int i=0;i<10;i++)
scanf("%c",&c[i]);

//如果你代码结构是上面那样的,则输入一人字符后回车,计算机实际上接收了两个字符,即:字符+回车,要将这个多余的回车去除,可以将上面代杩改为下面的形式:
char c[10];
for(int i=0;i<10;i++)
{
flushall(); //清除多余的回车符。
scanf("%c",&c[i]);
}

热心网友 时间:2023-10-11 13:49

呵呵,这是scanf的规则!
按理来说你每输入一个数 末尾都要加一个空格才能完成一次输入!

建议不要图方便在scanf在加上了一些规则!
这样会变得很麻烦,
可以通过与printf相结合的方式!

热心网友 时间:2023-10-11 13:50

scanf后面 加一个getchar追问嗯嗯,加了,还是不对……

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com