从文件中读取奇怪的值

时间:2016-04-17 17:53:14

标签: c file scanf

好的,所以我用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;
}

0 个答案:

没有答案