0

我正在编写代码来反转文本文件。例如: abc 应该变成 cba

我写的代码很好,它可以工作。但我注意到了这种奇怪的行为。如果我再次将反向输出作为输入,它会跳过反向输入文件的最后一个字符。怎么第一次很好用,下次跳过一个字符?

这是代码:

int main(){
    int fin, fout;
    char c[1];
    fin = open("input.txt",O_RDONLY);
    fout = open("reverse_input.txt",O_WRONLY|O_TRUNC);
    lseek(fin, -2, SEEK_END);
    do{
        read(fin, c, 1);
        write(fout,c,1);
    }while(lseek(fin, -2, SEEK_CUR) >=0);
    close(fin);
    close(fout);    
    return 0;
}

我猜我错过了某种EOF字符......

4

1 回答 1

1

您需要将 fin 的最后一个字符写为 fout 的最后一个字符。

于 2013-08-06T13:58:57.277 回答