我正在写一个程序,在Linux终端上复制输入逐字输出。代码如下(来自Dennis Ritchie的C书)延迟输出到EOF而不是换行
#include <stdio.h>
/* copy input to output; 2nd version*/
main()
{
int c;
while ((c = getchar()) != EOF)
putchar(c);
}
该程序及其执行正常工作。但我想稍作修改。
输出显示在每个新行字符的终端上(当我按下Enter键时)。我想延迟输出,直到按信号结束文件,按Ctrl + D。为了延迟我在终端上的输出,我必须对该程序进行哪些修改。
示例输出我得到如下:
我希望得到abcd (enter)
abcd
llefn;elnf(enter)
llefn;elnf
(ctrl+d)
输出示例如下:
abcd(enter)
llefn;elnf(ctrl+d)
abcd
llefn;elnf
将字符放入缓冲区并显示整个缓冲区和结束。没有其他选项AFAIK –
不需要更改程序的修复就是将输入写入文本文件,然后将其作为输入重定向到您的程序。 'a.out
@Meehm是的,它没有任何额外的空间工作正常,但有可能使用终端本身做的东西? – hanugm