我需要编写一个从标准输入读取的程序,并且只将非空行写入标准输出(即仅包含 \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;
}
有什么办法可以让我循环程序,这样即使输入了一个空行,用户仍然可以继续输入?