c - 使用 fgets 从文件中读取

标签 c fgets file-read

我正在读取格式的文件

1 32 43 23
32 43
123 43 54 243 
123 2222
2

这是我的代码片段。

string[100];
while(!feof(fp))
    fgets(string,100,fp)

现在,当我将每个字符串放入最后一个字符串时,我会出现重复和更多歧义(就像其他内容也会被打印,比如 123 左右)。

如何解决这个问题?

最佳答案

您需要检查fgets的返回值。如果读取成功,fgets 返回指向您传递给它的缓冲区的指针(即示例中的string)。如果遇到文件结尾且未读取任何字符,fgets 将返回 NULL

试试这个:

char string[100];
while(fgets(string, 100, fp)) {
    printf("%s\n", string);
}

关于c - 使用 fgets 从文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54010524/

相关文章:

c - fread 不读取多行

c++ - 从文件中读取多个字符串 C++

java:如何使用bufferedreader读取特定行

C memcpy 交换二维数组的行

c - C 和 Java 如何处理越界数组访问有何不同?

c - 控制台读取错误

c - 如何使用 fgets 读取包含字符串和整数的文件

c - 将文件从网站发送到 C 应用程序

c - strcmp 在 C 中导致段错误

c - strcmp 在用 fgets 读取的一行上