0

我有这个类程序,我们只需要证明我们可以从文本和二进制文件中读取、写入和填充数组。我没有发布很多二进制文件,但文本文件让我很头疼。

我相信这点代码是罪魁祸首。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。我已经到了像狒狒一样向问题扔便便的地步。

我不希望人们认为我很懒惰并寻找一个简单的答案,可能是弱智但不是懒惰。

有什么建议么?

谢谢,

麦克风

4

1 回答 1

0

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

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

于 2013-02-02T02:40:13.637 回答