我正在编写代码来反转文本文件。例如: 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字符......