每个字节复制文件字节 - 为什么foef不能做我想要的?

时间:2017-10-14 17:52:00

标签: c file

我有以下代码:

int copynFile(FILE * origin, FILE * destination, int nBytes) {
    for(int i = 0; i < nBytes; i++){
        if(feof(origin)!=0) return i;
        int byte = getc(origin);
        if(byte == EOF || putc(byte, destination)==EOF) return -1;
    }
    return nBytes;
}

我的意图是这个函数应该将nbytes从origin复制到destination。如果origin中的字节数小于nBytes,则它会返回实际复制到目标的字节数,如果发生错误则返回-1。

现在,我将返回-1行添加为只应在异常情况下发生的事情,但每次函数达到原点的EOF时它都会触发!

因此我相信if(feof(origin)!=0) return i;没有完成检测文件结尾的工作。有什么问题?

0 个答案:

没有答案