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

时间:2013-02-02 02:24:22

标签: c file-io

我有这个程序用于类,我们只需要显示我们可以从文本和二进制文件中读取,写入和填充数组。我没有很多发布二进制文件,但文本文件给了很大的时间脑痛。

我相信这一小段代码应该受到指责。 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换掉了fgets。我已经到了这个地方,我就像一只狒狒在这个问题上扔便便一样。

我不希望别人认为我很懒,寻找一个简单的答案,弱智也许不是懒惰。

有什么建议吗?

谢谢,

麦克

1 个答案:

答案 0 :(得分:0)

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

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

相关问题