У меня проблема с использованием fgets.Цикл должен прочитать строку макс.19 символов, проанализируйте этот массив символов и дождитесь следующего ввода.Проблема состоит в том, что если введенная строка превышает 19 символов, fgets заполнит оставшиеся символы до тех пор, пока не будет введен Ctrl-D или новая строка, что инициирует новый цикл без нового ввода.После прочтения 19 символов ввод (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 //