gpt4 book ai didi

c - C 错误中的 I/O

转载 作者:太空宇宙 更新时间:2023-11-04 02:08:26 25 4
gpt4 key购买 nike

我花了好几个小时来寻找我在大学遇到的这个问题的答案。我尝试通过编写一个包含两行的文件来运行它:你好世界它完美地读取了文件,所以我找不到答案。非常感谢您的帮助!

一位学生编写了下一个函数,用于读取文本文件并按原样打印它。

void ReadFile(FILE *fIn)
{
char nextLine[MAX_LINE_LENGTH];
while(!feof(fIn))
{
fscanf(fIn,"%s",nextLine);
printf("%s\n",nextLine);
}
}

这个函数的两个错误是什么?

您可以假设文件中的每一行不超过 MAX_LINE_LENGTH 个字符,并且它是一个仅包含字母字符的文本文件,并且每一行都以“\n”结尾。

谢谢。

最佳答案

  1. 它丢弃空白。尝试添加多个空格和制表符。

  2. 它可能会多次评估一个流,如果出现读取错误,则循环永远不会终止。
    请参阅:Why is “while ( !feof (file) )” always wrong?

  3. 通过 scanf 读取字符串是危险的。没有边界检查。您可能会阅读过去 MAX_LINE_LENGTH。(然后砰!段错误)

关于c - C 错误中的 I/O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17928929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com