gpt4 book ai didi

c - 使用 fgets 从文本文件填充数组

转载 作者:行者123 更新时间:2023-11-30 17:54:57 26 4
gpt4 key购买 nike

我有一个类程序,我们只需要证明我们可以从文本和二进制文件读取、写入和填充数组。我没有收到太多关于二进制文件的问题,但文本文件却给我带来了很大的脑痛。

我相信这一点代码是罪魁祸首。 userInputText[MAXSIZE]是一个字符数组(MAXSIZE 定义为 100000),当程序此时时,textCount 和 textCounter 都初始化为零。

textPointer = fopen("textFile.txt", "r");
if (textPointer)
{
while (fgets(userInputText, sizeof(userInputText), textPointer) != NULL)
{
sscanf(userInputText, "%d", &textCount);
userInputText[textCounter] = textCount;
textCounter += 1;
}
}

当用户第一次运行程序时,这部分程序将被跳过,并要求用户创建并写入一个文本文件。用户输入整数,它们被写入文本文件并存储在 userInputText 中,并在程序结束时显示在屏幕上。所有这些工作正常,每次程序运行时都会正确附加文本文件。我已经尝试了上面代码中我能想到的所有组合。我尝试过使用 fopen(r+)、sizeof(int 和 MAXSIZE),并尝试使用 %d。在程序后面的 fprintf 部分中,我将“\n”设置为分隔符,但我也尝试删除它。我把 fgets 换成 fread 。我已经到了像狒狒一样解决这个问题的地步了。

我不想让人们认为我很懒,并且在寻找简单的答案,也许是弱智,但并不懒。

有什么建议吗?

谢谢

迈克

最佳答案

尝试 while( !feof(textPointer) )
{ fgets(userInputText,MAXSIZE,textPointer); }

sizeof(userInputText) 只会返回 char 指针的大小。

关于c - 使用 fgets 从文本文件填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14657975/

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