2017-01-28 10 views
0

Эта функция должна получить линию от терминала. Но это не так! Я несколько раз перебирал код, но я не смог точно определить проблему! Пожалуйста помоги! Кажется, что код не вводит блок while.Функция чтения строки со стандартного ввода в C не работает должным образом

int getline(char line[]) { 
int i = 0 ; 
int c ; 
while(((c=getchar()) != EOF) && (c =! '\n')) { 
    line[i++] = c ; 
} 
line[i] = '\0' ; 
return i ; 
} 

ответ

3

Ну это неправильно

while(((c=getchar()) != EOF) && (c =! '\n')) 

должно быть

while(((c=getchar()) != EOF) && (c != '\n')) 

Вы замечаете разницу? != - сравнение (это правильно), и =! полностью отличается (что означает отрицание '\n' и присвоение его c) - это было неправильно. Итак, внимание к деталям пожалуйста :)

+0

А ... Я чувствую себя таким идиотом ... Я смущен ... Спасибо! – user1720897

+0

ошибки, подобные этому, случаются в плохие дни. Успокойтесь, и не делайте это во второй раз. – artm

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

  • Нет связанных вопросов^_^