系统win10,输入法QQ拼音
用Dev C++和Codeblocks的debug功能时,运行到scanf()函数输入数据时,黑框里没显示输入的数据,但是系统是接收到数据了的,要运行到后面的步骤才显示出来。问一下是什么原因呢?
↑已经输入数据,但是没显示出来
↑现在才显示刚才输入的数据
非debug的时候输入数据是正确显示的,就是debug的时候不显示。Dev C++和Codeblocks都有这个问题。其他没试过。
用Dev C++和Codeblocks的debug功能时,运行到scanf()函数输入数据时,黑框里没显示输入的数据,但是系统是接收到数据了的,要运行到后面的步骤才显示出来。问一下是什么原因呢?
↑已经输入数据,但是没显示出来
↑现在才显示刚才输入的数据
非debug的时候输入数据是正确显示的,就是debug的时候不显示。Dev C++和Codeblocks都有这个问题。其他没试过。
解决方案
20
在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。
//请今后要用 int c; scanf("%c",&c); //时,都改为 char s[2]; int c; scanf("%1s",s); c=s[0];
20
fflush(stdin);//Linux下好象不支持。