Я неправильно использую%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')
    {...}

Попробуй это

scanf("%c", &class);

Это будет работать на 100%.

зсапЕ ("% С",& класс);

Другие вопросы по тегам