我有这个类的程序,我们只需要显示我们可以从文本和二进制文件中读取,写入和填充数组 . 我没有很多发布的二进制文件,但文本文件给了很多时间脑痛 .
我相信这一小段代码应该受到指责 . 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 回答
试试
while( !feof(textPointer) ) { fgets(userInputText,MAXSIZE,textPointer); }
sizeof(userInputText)
只返回char指针的大小 .