OSMANOF
@OSMANOF
Segmentation fault

Почему выводится только первое слово из scanf() в printf() в Си?

#include <stdio.h>
#include <stdlib.h>

int main() {
	char name[1024];
	printf("Your name: ");
	scanf("%s", &name);
	printf("Hello, %s!\n", name);
	system("pause");
	return 0;
}

И если я пишу Петр Петров, то выводится только Петр. Почему?
  • Вопрос задан
  • 338 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Почему?

Потому что scanf("%s", name) сканирует поле до первого пробельного символа.
Если ты хочешь строчку до конца строки используй, например, scanf("%[^\n]", name)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы