好的,所以我用fscanf读取了一个文件,它正确读取,直到我的txt文件中的最后一个元素。 txt文件包含100个整数的列表,因此它完全在我的缓冲区的最大大小(250)内。在最后一个正确的读取整数之后,它决定存储很多零,直到它存储一些奇怪的负数并最终结束。我怀疑fscanf以某种方式在txt.file中找到一些垃圾信息?有人可以使用一些整数在任意.txt文件上运行代码并确认我的结果吗?
我做错了什么?
int readFile(char *filename)
{
FILE * fp;
int buffer[250];
int num = 0;
int i = 0;
fp = fopen(filename, "r");
if(fp == NULL)
{
printf("could not open file\n");
return -1;
}
while(fscanf(fp, "%d", &num) == 1)
{
buffer[i] = num;
i++;
}
fclose(fp);
int arrsize = (sizeof(buffer) / sizeof(buffer[0]));
for(int i = 0; i < arrsize; i++)
{
printf("%d\n",buffer[i]);
}
return 0;
}