Мне нужно написать программу, которая читает из stdin и записывает непустые строки в stdout (т. Е. Строки, содержащие только \ n). Например, если STDIN был:Проверка ввода пустых строк ( 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». –
Звучит очень похоже на домашнюю работу. Если мое предположение верно, перейдите и отредактируйте сообщение, чтобы включить тег 'homework'. – Till
Спасибо - я включил домашнюю метку. – SeekingCharlie