У меня проблема с использованием fgets. Предполагается, что цикл должен читать строку макс. 19 символов, проанализируйте этот массив символов, а затем дождитесь следующего ввода. Проблема заключается в том, что если введенная строка содержит 19 символов, fgets будет заполнять str оставшимися символами до тех пор, пока не будет введен символ Ctrl-D или новая строка, таким образом, инициируя новый цикл без нового ввода. Ввод (stdin) должен каким-то образом быть сброшен после считывания 19 символов, поэтому цикл может начинаться с чистого листа. У кого-нибудь есть решение?C, flushing stdin
char str[20];
while((fgets(str, 20, stdin) != NULL)) {
puts(str); //monitoring str
if(str[0] == 'q') break;
}
Пример использования в:
hola hola //user inputs 9 chars + newline
hola hola //puts writes
hoo hoo hoo hoo hooh //user inputs 20 chars + newline
hoo hoo hoo hoo hoo //puts writes
h //
спасибо, я думаю, что будет делать трюк. – DoggyDoo