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/9434207/

相关文章:

java - 读取和写入文件时,输出会发生变化

c - 使用 scanf 读取 double 的段错误

c - fgets() 不会将文件内容读取到二维数组

c - 我的 sscanf 如果陷入无限循环,我该如何修复它

c - 逐行读取文本文件,在C中分成单词

java - Java 中读取文件类型 (MIME) 返回 null

找不到发生段错误的位置

毫秒到 jiffies 的转换

python - 在 C 中,从函数返回 2 个变量

c - 如何比较 ASCII 值