2015-10-24 2 views
0

При получении строк, содержащих пробелы с scanf(), он присваивает только вход, указанный перед пробелом. Например, если я даю «привет мир» в качестве входных данных. В переменную сохраняется только «привет». Я знаю его спокойную естественность с scanf(). Когда я использую gets(), он отлично работает. Но gcc сообщает, что gets() устарел. Он также предупреждает, что gets() является опасным и не должен использоваться. Итак, без gets() как получить строки с пространством? Существуют ли другие альтернативные функции?Как получить строки, содержащие пробел без gets() в C?

+2

'обугленного ул [256]; fgets (str, sizeof (str), stdin); '- Обратите внимание, что' fgets' потребляет и сохраняет '\ n' в конце' str' (при условии, что для него есть место). –

+0

Что является вторым аргументом? Максимальное количество символов или необходимое количество символов или что-то еще? –

+1

'char str [256] = {0}; scanf ("% 255 [^ \ n]% * c", str); ' – BLUEPIXY

ответ

2

Вы можете использовать char *fgets(char *str, int n, FILE *stream)

Чтобы принять ввод от пользователя, вместо FILE* stream, используйте стандартный входной поток stdin

fgets (str, 60, stdin) 
+0

С этим я могу получить вход от stdin? –

+0

@PraveenKumar Да, вы можете – Haris

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

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