Я heve следующего кодаЧто такое опции scanf vs получает vs fgets?
while (a != 5)
scanf("%s", buffer);
Это хорошо работает, но занимает не пространства между указанными словами или другими словами, зсап заканчивается, если использовать пробел для сканирования
Если я использую этот
while(a != 5)
scanf("%[^\n]", buffer);
Он работает только один раз, что плохо
Я никогда не использую gets()
, потому что я знаю, как много я противный т есть ..
Мой последний вариант это
while(a != 5)
fgets(buffer, sizeof(buffer), stdin);
Так что мои вопросы
- Почему вторая команда не работает внутри цикла?
- Какие еще параметры я должен сканировать строку с пробелами?
Что такое 'a'? где это меняется? Что это за первоначальное значение?Что ты пытаешься сделать? – harald
Я бы пошел с третьим вариантом, а затем обрезал новую строку, как показано [здесь] (http://stackoverflow.com/a/28462221/3386109) – user3386109
Во всех трех случаях проверка возвращаемого значения 'scanf()/fgets() 'необходимо перед использованием' buffer'. – chux