首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

学了一年c发现才发现的有关问题

2012-03-20 
学了一年c发现才发现的问题C/C++ code#include stdio.hvoid main(){int cwhile ((c getchar()) ! EO

学了一年c发现才发现的问题

C/C++ code
#include <stdio.h>void main(){    int c;    while ((c = getchar()) != EOF)        putchar( c );}

我不明白为什么我输入jflksdjf在加crtl+z后循环不退出!必需换行后在ctrl+z才有用!
但是如果用别的字符就可以,如'a'。输入hfdfjaf遇到a就会跳出循环。这是为什么了?

[解决办法]
>>我不明白为什么我输入jflksdjf在加crtl+z后循环不退出!

这是因为getchar在对stdin不刷新的前提下,只会提示一次输入
如当程序运行后输入“jflksdjf”+“^z”,再键入回车,程序会显示
“jflksdjf->”,这里字符“->”就是“^z”,当检索到c=10(回车时)
再提示输入
此时再键入“^z”就直接跳出循环了

这个问题和编译器无关,只不过是getchar输出的一个特点!

热点排行
Bad Request.