我需要编写一个程序,它从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