我需要編寫一個程序,它從stdin讀取並且只寫入非空行到標準輸出(即只包含\ n的行)。例如,如果標準輸入是:驗證空行輸入( n n)
1
2
\n
3
輸出將是:
1
2
3
這是我到目前爲止有:
#include <stdio.h>
#include <string.h>
int main()
{
char buf[BUFSIZ];
char *p;
printf ("Please enter some lines of text\n");
if (fgets(buf, sizeof(buf), stdin) != NULL)
{
printf ("%s\n", buf);
/*
* Remove newline character
*/
if ((p = strchr(buf, '\n')) != NULL)
*p = '\0';
}
return 0;
}
有什麼辦法,我可以循環該程序雖然,所以即使輸入一個空行,用戶仍然可以繼續輸入?
我不知道你的程序的說明相匹配(而且由於程序有語法問題,就很難知道,如果你想要的是該程序的樣子可能是做或你在問題中所做的)。最令人困惑的是,該程序似乎只讀過一行文字,因此沒有多少機會可以讀入多個'\ n'。 – 2012-04-27 01:09:18
聽起來很像作業。如果我的假設是正確的,請繼續編輯您的帖子以包含'家庭作業'標籤。 – Till 2012-04-27 01:15:09
謝謝 - 我已經包含一個作業標籤。 – SeekingCharlie 2012-04-27 01:24:01