c - 无法读取 C 中的 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)!='\n' && (*(name2+j))!=EOF)

但我仍然遇到同样的问题。有人可以告诉我是否在这里遗漏了什么吗?谢谢。

最佳答案

EOFchar 范围之外的整数值(因为它的目的是表明没有 char 存在),所以如果您希望能够将一个值与 EOF 进行比较,那么您需要检索该值并将其存储为 int 而不是一个字符

关于c - 无法读取 C 中的 EOF 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9253545/

相关文章:

javascript - javascript中的search()方法无法在包含 "\\ch"的字符串中搜索它

java - String.replaceAll() - 将 "I"替换为 "You",反之亦然

c - 用`scanf()`读取逗号分隔的输入

从c上的键盘输入字符

c - 将文件中的整数分配给数组

c - C 中的字符串拆分 : separating the two parts

Codechef 和直角三角形的斜率法

在 Segmentation Violation 后恢复生机

c++ - std::array<char, N> 到 std::string

c++ - 从以不同方式格式化的文件数据中读取。 C++