我有这个类程序,我们只需要证明我们可以从文本和二进制文件中读取、写入和填充数组。我没有发布很多二进制文件,但文本文件让我很头疼。
我相信这点代码是罪魁祸首。userInputText[MAXSIZE] 是一个 char 数组(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。我已经到了像狒狒一样向问题扔便便的地步。
我不希望人们认为我很懒惰并寻找一个简单的答案,可能是弱智但不是懒惰。
有什么建议么?
谢谢,
麦克风