我编了一个程序,其中含一个循环,循环中有一个scanf语句,第一次循环时,scanf执行正常,而在1次循环后,scanf不执行就自动过去了。我用debug单步执行,按理说,后面的一次sacnf必须在黑框停顿让我填写,我按F10才能执行下一步。可是现在是我没输入任何内容,按F10就执行下一步了……怎么办?虚心求指教!
我在scanf后面用一个char型变量enter吸收了回车,即为enter=getchar();
还是不对啊……
卟。。用getch()试试,因为getchar()也是要按回车的
追问用getch(),提示我:undeclared identifier…………555……
追答#include "conio.h"
清除所有缓冲区,那么我是不是其他的数据也会消失呢?
追答不会的。
追问可是你这样写:
for(int i=0;i<10;i++)
{
flushall(); //清除多余的回车符。
scanf("%c",&c[i]);
}
电脑怎么知道你是清除c[ ]的变量呢?他不是清楚了所有变量信息吗?
flushall();//这个语句是清除键盘缓冲区,不是清除变量。
追问因为我是有很多个变量数据的,比如i,j,k……,如果我flushall后,那么这些变量以前赋的值不就是清空了吗?没了吗?
追答不会。
如果你会调试程序的话,你可以测试下,增加理解。
嗯嗯,加了,还是不对……