Member 13615108 Ответов: 2

Как я могу ввести более 1 символа и все еще выполнять программу пошагово ?


Когда я ввожу код ниже и пытаюсь ввести свое имя, то остальные коды исполняются сами, не позволяя мне вводить какие-либо данные, но когда я ввожу один символ для имени, то я могу вводить данные один за другим. Почему это так ?

#include <stdio.h>

int main() {
	
	char name;
	int age;
        char gen;
	
	printf("What is your name ? \n");
	scanf(" %c", &name);
	
	printf("What is your age ? \n");
	scanf(" %i", &age);
	
	printf("What is your gender ? \n");
	scanf(" %c", &gen);
	
	printf("Thank you for the information! :)");
	return 0;
}


Что я уже пробовал:

Я попытался использовать "char name[10];" думая, что это может быть проблема хранения, я также изменил "10" на "1000", но это, похоже, не работает. Всякий раз, когда я ввожу более 1 символа, программа сама выполняет остальную часть кода.

2 Ответов

Рейтинг:
1

Rick York

%c-это спецификатор формата для одного символа, который вы использовали. %s-это спецификатор формата для текстовой строки, и именно его вы должны использовать для имени.


CPallini

5.

Рейтинг:
0

CPallini

Цитата:
Я попытался использовать "char name[10];" думая, что это может быть проблема хранения,
Есть тоже проблема хранения. В C алгоритмический язык, char тип данных представляет собой одиночный характер. С другой стороны, строки (например, имена) являются (0 прекращена) для проживания charактеры. Смотрите, например, Строки Программирования На Языке Си[^].