我在读取 C 中最后输入的 EOF 字符时遇到问题
j=0;
while(*(name2+j)!='\n'){
if(*(name2+j) == ' '){
j++;
continue;
}
d[tolower(*(name2+j))]++;
j++;
}
对于最后一个输入,没有换行符,对于非常小的字符串,j 的值被设置为非常大的数字。因此,为了考虑文件结尾,我将 while 条件修改为
while(*(name2+j)!='\n' && (*(name2+j))!=EOF)
但我仍然遇到同样的问题。有人可以告诉我是否在这里遗漏了什么吗?谢谢。
最佳答案
EOF
是 char
范围之外的整数值(因为它的目的是表明没有 char
存在),所以如果您希望能够将一个值与 EOF
进行比较,那么您需要检索该值并将其存储为 int
而不是一个字符
。
关于c - 无法读取 C 中的 EOF 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9253545/