eof - fgetc() 不会在 EOF 中停止

标签 eof fgetc

试图查看论坛但无法重新访问。

我正在尝试阅读文本。文字是: “给 b”

但是在使用 fgetc() 时,没有达到 EOF,最后我得到 '\n',然后是无穷大的 'y' 样本。

这是我的代码:

Node* getBinTree(FILE *fsrc){
    Node* root=NULL;
    unsigned char tmp=NULL;
    while ((tmp=fgetc(fsrc))!=EOF)
        globalArray[tmp]++;
    return root;

非常感谢

最佳答案

您遇到的问题与fgetc 返回的内容有关。返回类型是 int 但您将其存储到 unsigned char 中。

您必须将其更改为 int,或者使用 feof 来检查文件结束条件。

关于eof - fgetc() 不会在 EOF 中停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30139937/

相关文章:

c - c语言文件

C 编译错误 - "fgetc & fputc too few arguments"

C fgetc sigsegv - 跳到行尾

c - 我在调用 scanf() 时输入 Ctrl - D (EOF),然后忽略下一个 scanf

c - fgetc 总是返回值 1

c++ - Ifstream - 重置 EOF 位

c - fgetc 空终止符

sql - 更新语句导致Oracle "No more data to read from socket"?

c++ - 在 C++ 中检查空文件

c - 使用 fgetc() 读取文件后字符串中出现未定义的字符