我正在熟悉C編程,並且想編寫一個類似於expand的程序。命令行工具首先讀取來自stdin
的每個輸入,對其進行處理並將完整結果寫入stdout
。我怎樣才能以優雅的方式實現這一目標?如何緩衝stdout,直到標準輸入關閉?
目前我的代碼看起來像這樣。這在處理文件時是完美的,但當用戶輸入每一個換行符後,他顯然當input
是stdin
時,他立即得到輸入行的結果。
char buffer[1024];
while (fgets(&buffer[0], sizeof(buffer)/sizeof(char), input) != NULL)
{
/* do something */
printf("output");
}
最好的問候,
奧利弗Hanappi
這就是命令行工具預期的工作方式。如果你想在一個地方輸出所有的輸出,請嘗試將輸出重定向到一個文件。 – casablanca 2010-10-25 23:26:24