我有这个程序用于类,我们只需要显示我们可以从文本和二进制文件中读取,写入和填充数组。我没有很多发布二进制文件,但文本文件给了很大的时间脑痛。
我相信这一小段代码应该受到指责。 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。我已经到了这个地方,我就像一只狒狒在这个问题上扔便便一样。
我不希望别人认为我很懒,寻找一个简单的答案,弱智也许不是懒惰。
有什么建议吗?
谢谢,
麦克
答案 0 :(得分:0)
尝试while( !feof(textPointer) )
{ fgets(userInputText,MAXSIZE,textPointer); }
sizeof(userInputText)
只返回char指针的大小。