【发布时间】:2015-10-07 20:52:44
【问题描述】:
我正在尝试从文本文件中获取输入,然后反转每一行,然后输出回不同的文本文件。出于某种原因,程序只对第一行执行此操作,而不会移动到第二行。我不明白这一点,因为它应该一直持续到它到达 EOF。
【问题讨论】:
-
while ( (temp=getchar()) != EOF )允许您删除temp=getchar();的三个副本。您可能还想在reverse函数的返回之前添加一个putchar('\n');。 -
此外,您发布的代码将从
stdin读取并写入stdout。这是你真正的程序吗? -
@iharob 他正在使用 I/O 重定向来读写文件
-
您确定输入文件的第二行以换行符结尾吗?当您读取换行符时,您只会打印出反转的行,因此如果没有,您将不会打印最后一行。
-
你使用的函数定义为
int getchar();,所以你需要使用int temp而不是char temp。否则你无法区分字节值0xFF和标志EOF。