Я неправильно использую%c?
Я делаю историю, основанную на выборе, и после того, как я прошу пользователя нажать Enter, появляется опция, в каком классе он не хочет быть своим персонажем. Каждый раз, когда появляется это окно, появляется сообщение "legends.exe" перестал работать ".
#include <stdio.h>
int main()
{
char firstname[15];
char class;
char swordch0c1;
char enter;
printf("Hello there! Could I have your first name?\n");
scanf("%s",firstname);
printf("\n---------------------The Legend of %s---------------------",firstname);
printf("\nPress Enter to continue.");
enter=getch();
if(enter=="\n");
printf("\n\n\nYou are %s, a: \nA.Swordsman\nB.Assassin\nC.Archer\nD.Mage\n",firstname);
scanf("%c",class);
return(0);
}
Извините, если я затрудняюсь или недостаточно конкретен. Кстати, я использую Windows.
5 ответов
Замещать
scanf("%c",class);
с
scanf("%c",&class);
Вам нужно дать scanf
указатель на то место, куда вы хотите поместить данные.
Обратите внимание, что class
не лучшее имя для переменной. Хотя это не ключевое слово в C, но во многих языках.
Используйте следующий синтаксис, вам нужно указать &
зсапЕ ("% С",& класс);
Последний scanf
должен содержать &
:
scanf("%c",&class);
&
это адрес оператора, и он нужен перед именем переменной в scanf
, scanf
ожидает указатель аргумента (ов) или другими словами указатель на переменную (и), а не саму переменную.
if(enter=="\n");
Не имеет никакого эффекта здесь. Измените это на
if(enter=='\n')
{...}