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