c - fgetc() 不返回 '\n' 个字符

标签 c

我正在尝试使用 FILE* 类型读取文本文件。一切都很好,除了 fgetc() 函数。

事实上,我想检查文件中有多少个 '\n' 字符,但该函数永远不会返回该值,即使我正在读取的文件中有一个。有人遇到过这种情况吗?

我使用的代码如下:

char ch;
while (ch!=EOF) {
    ch = (char) fgetc(gl_file);
    if(ch=='\n') newline_counter++;
}

newline_counter 保持为 0。

最佳答案

在检查其值之前,您不会初始化 ch,并且 chchar,而 fgetc 返回 int。 重写为:

int ch;
while ((ch = fgetc(fp)) != EOF)
{
  if(ch == '\n')
    ++newline_counter;
}

关于c - fgetc() 不返回 '\n' 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56306877/

相关文章:

c - 如何从用户空间使用 C 在 Linux 中获取驱动器标签

c - 在 C 语言中编写结构体的规则是否因 Turbo C++ 编译器和 GCC 的不同而不同?

c - 如何在 C 中实现适用于 turtle 图形的函数?

c - Linux 串行读取()无关数据

CoUninitialize 函数。如何检查错误以及如何等待完成

C编程: words from byte array

c - 使用宏获得的输出说明

c - 在 Atmega 的 I2C 接口(interface)中没有得到正确的值

c - gcc 不会编译和运行 MySQL C 库

c - C编程中日期不同时显示错误