过早地达到EOF

时间:2012-09-25 05:58:14

标签: c eof

读取的代码是:

int Function(FILE fpi*, int *Ncols, int *Nrows) {
    if (fscanf(fpi, "%d", Nrows) > 0) {
        return fscanf(fpi, "%d", Ncols);
    } else {
        printf("%s\n", "EOF reached.");
        return -1;
    }
}

(注意 - 功能只是一个替代名称)。该文件看起来像:

2 2
1 1
1 1
3 3
1 1 1
1 1 1
1 1 1

它遍历第一组指令很好 - 也就是说,它需要2和2并将它们存储在Ncols和Nrows中,然后使用以下2乘2的数据集(一组数据)进行操作;但是,在主程序中到达while循环结束时:

int eof = Function(fpin1, &Rsize1, &Csize1);
while (eof > 0) {
    stuff

    eof = Function(fpin1, &Rsize1, &Csize1);
}
它刚刚死了。

0 个答案:

没有答案