Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法读取C中的EOF字符_C_String_Input_Eof - Fatal编程技术网

无法读取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)!

我在读取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是字符范围之外的整数值,因为它的目的是指示不存在字符,因此如果您希望能够将值与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数组,了解问题所在。谢谢各位: