我正在编写一个代码来反转文本文件。 例如: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角色......
答案 0 :(得分:1)
你需要将fin中的最后一个char写为fout的最后一个char。