Как получить строку ввода от стандартного ввода, который имеет пробел в C? - PullRequest
3 голосов
/ 17 февраля 2020

Нужно решение, чтобы строка ввода начиналась с пробелов?

Я знаю способ включения пробела во ввод

scanf("%[^\n]s", s);

Но он работает только для пробелов между словами. Мне нужно решение для строки начинается с пробелов. И мне также нужны начальные пробелы в переменной

1 Ответ

3 голосов
/ 17 февраля 2020

Чтобы получить строку пользовательского ввода, используйте fgets().

#define S_MAX_LENGTH
char s[S_MAX_LENGTH + 2];
if (fgets(s, sizeof s, stdin)) {
  s[strcspn(s, "\n")] = '\0'; // Should code want to lop off a potential trailing \n
  ....

Не используйте scanf("%[^\n]s", s); и gets(s);. Они страдают от переполнения буфера и других проблем.

...