EOF问题
#include <stdio.h>#include <conio.h>
int main(int argc, char *argv[])
{
int iChar;
int iBlink =0;
int iTab =0;
int iNewLine =0;
while((iChar=getchar()) != EOF)
{
if(' ' == iChar)
iBlink++;
if('\t' == iChar)
iTab++;
if('\n' == iChar)
iNewLine++;
}
printf("iBlink=%d\n",iBlink);
printf("iTab=%d\n",iTab);
printf("iNewLine=%d\n",iNewLine);
getch();
return 0;
}
这程序是计算所输入的空格,TAB,与新行的个数。
我用的是DEVC++,
我看了stdio.h EOF定义为-1.
查看getchar()函娄说铵回车时结束输入状态
可是while(((iChar=getchar()) != EOF)这句语句按回车键时根本不退出输入状态。
想知道为什么
搜索更多相关的解决方案:
EOF
----------------解决方案--------------------------------------------------------
windows下面好像是ctrl+z表示EOF 手边没有编译器 没法试 好像是
----------------解决方案--------------------------------------------------------
回车是13啊
----------------解决方案--------------------------------------------------------
多谢ctrl+z的确可以退出循环。
iChar=getchar()) != EOF
可是改成
iChar=getchar())==EOF
一回成就退出循环了
----------------解决方案--------------------------------------------------------
不用EOF可以做到那个效果吗?
----------------解决方案--------------------------------------------------------
while((iChar=getchar()) != EOF)
/* 循环到文件结尾,win 命令行下 Ctrl + Z */
回车怎么可能是文件结尾呢!
如果要回车退出循环的话,如下:
while((iChar = getchar()) != '\n')
----------------解决方案--------------------------------------------------------
在VC6.0里不行啊
----------------解决方案--------------------------------------------------------
iChar=getchar())==EOF
一回成就退出循环了
意思是输入EOF循环才进行````你按的回车``当不是EOF``循环当然要退出了啊`
----------------解决方案--------------------------------------------------------
ctrl+z是可以的 不过也可以用F6+Z退出的
----------------解决方案--------------------------------------------------------
可以按ESC推出啊
定义一个宏
#define ESC '\033'
----------------解决方案--------------------------------------------------------