我正在寫一個程序,在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