2015-09-18 3 views
0

Я пытаюсь получить пользовательский ввод с fgets в C, и у меня возникли проблемы с использованием цикла while.Сравнение циклов строк/символов с fgets

Вот код, я использую:

char input[300]; 

fgets(input, 300, stdin); 

while(strcmp("Quit", input) != 0) { 

    fgets(input, 300, stdin); 

} 

Когда я вхожу Quit цикл продолжается и не прерывается, и я не понимаю, почему это так.

+0

И дубликат сам дубликатом [ 'зЬгстр()' на линии чтения с 'fgets()'] (http://stackoverflow.com/ вопросы/2404794). –

ответ

1

fgets() сохраняет новый символ строки в input. Либо удалите его вручную, или сравнить, как это:

while(strcmp("Quit\n", input) != 0) 
+0

Как удалить символ новой строки? – code

+0

Это похоже на EOL? – code

+0

@code Что-то вроде 'input [strlen (input) - 1] = '\ 0';'. –

Смежные вопросы