【发布时间】:2012-02-12 23:03:48
【问题描述】:
我在读取 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)
但我仍然遇到同样的问题。有人能告诉我这里是否遗漏了什么吗?谢谢。
【问题讨论】:
-
name2的声明是什么?请记住,EOF不能 适合char变量。 -
EOF 通常是错误编程的标志。
-
是的.. name2 是 char 数组,了解问题所在。谢谢大家:)