c语言while (a[i] != '\n'&&a[i] != EOF)这语句a[i] != EOF有什么用?

char a[100];
int x=0, y=0, i=0;
gets_s(a, 100);

while (a[i] != '\n'&&a[i] != EOF)
{
if (a[i]=='{')
{
x++;
}
if (a[i]=='}')
{
y++;
}
i++;
}
if (x==y)
{
printf("yoyoyo!");
}
else
{
printf("nonono!");
}

感觉a[i] != EOF这句多此一举,为什么要有这一句呢?

一般在读文件时,会用到EOF,比如有的文本文件中有一行数据,但没有回车符,这时从文件读数据时,会读到EOF,也表示读数据结束了。追问

这么说,这里是字符串的话,其实这个语句是多余的是么?

追答

如果是从键盘输入,则算是多余的

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-09-23
检测是否到了文件结尾, 你可以输出来看下到底是什么值...追问

输出?输出哪个?? 0 0

追答

。。。。。。

相似回答