无法读取C中的EOF字符
我在读取C中最后一个输入的EOF字符时遇到问题无法读取C中的EOF字符,c,string,input,eof,C,String,Input,Eof,我在读取C中最后一个输入的EOF字符时遇到问题 j=0; while(*(name2+j)!='\n'){ if(*(name2+j) == ' '){ j++; continue; } d[tolower(*(name2+j))]++; j++; } 对于最后一个输入,没有新行字符,对于非常小的字符串,j的值被设置为非常大的数字。因此,为了考虑文件的结尾,我修改了while条件到 while(*(name2+j)!
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是字符范围之外的整数值,因为它的目的是指示不存在字符,因此如果您希望能够将值与EOF进行比较,然后您需要以int而不是char的形式检索并存储该值。EOF是一个超出char范围的整数值,因为它的目的是指示不存在char,因此如果您希望能够将值与EOF进行比较,然后您需要检索并将该值存储为int而不是char。您是如何声明name2并设置它的?char不能包含EOF,但如果通过标准输入函数获得它,则应该有一个“\0”终止它。如果是,只需将条件更改为
while (name2[j] && name2[j]!='\n')
您是如何声明名称2并设置它的?char不能包含EOF,但如果通过标准输入函数获得它,则应该有一个“\0”终止它。如果是,只需将条件更改为
while (name2[j] && name2[j]!='\n')
名称的声明是什么?请记住,EOF不能放入char变量中。EOF通常是错误编程的标志。是的。。name2是char数组,了解问题所在。谢谢,伙计们:名字的声明是什么?请记住,EOF不能放入char变量中。EOF通常是错误编程的标志。是的。。name2是char数组,了解问题所在。谢谢各位: