Меня попросили выполнить работу на C, когда я должен читать из ввода до тех пор, пока не появится пробел, а затем до тех пор, пока пользователь не нажмет Enter. Если я сделаю это:
scanf("%2000s %2000s", a, b);
Он будет следовать первому правилу, но не второму.
Если я напишу:
I am smart
То, что я получаю, эквивалентно:
a = "Я";
b = "я";
Но должно быть:
a = "Я";
b = "я умный" ";
Я уже пробовал:
scanf("%2000s %2000[^\n]\n", a, b);
а также
scanf("%2000s %2000[^\0]\0", a, b);
В первом он ждет, пока пользователь нажмет Ctrl+D (для отправки EOF), а это не то, что мне нужно. Во втором не компилируется. Согласно компилятору:
предупреждение: нельзя закрывать ‘]’ для формата ‘%[’
Любой хороший способ решить эту проблему?
getc()
, если задание требует, чтобы вы не читали строку, а затем анализировали ее. - person Brian Roach   schedule 11.11.2011