По какой-то причине после ввода текста cin cout выходит пустым. Есть идеи?

0

Поэтому я пытаюсь создать простую текстовую RPG. Но эта одна проблема сдерживает меня.

#include <iostream>

using namespace std;

int main()
{
    int input;
    long Sven;
    long Macy;

    cout<<"Choose your Character- 1.Sven or 2.Macy: ";
    cin>>input;
    cin.ignore();

    if ( input == Sven ){
        cout<<"Welcome to CRPG, my good Sir!";
    }

    if ( input == Macy ){
        cout<<"Girls cant fight, go back: ";
    }
}

Вот этот код и есть у меня на данный момент. Когда я запускаю программу, она позволяет мне ввести имя персонажа, которого я хочу выбрать. Но вывод всегда является пустой областью текста. Я более или менее новичок в C++, но у меня есть хорошие предварительные знания. Любая помощь велика.

  • 5
    Sven и Macy не были присвоены значения. Они могут содержать что угодно. Назначьте им такие значения, как long Sven = 1; и long Macy = 2; когда вы объявляете их
  • 0
    О, кк, я попробую это. Благодарю. РЕДАКТИРОВАТЬ: Это не сработало. Я даже попробовал if ( input == 1 ) с long Sven = 1; , Все еще пусто.
Показать ещё 2 комментария
Теги:
if-statement
int
cout
cin

1 ответ

2
Лучший ответ

Что меня отбросило, когда вы сказали, что это позволяет мне набирать имя персонажа, которого я хочу выбрать

В этом случае продолжите сравнение строк:

EDIT: Как предложил Мохаммед, сравнение строк можно сделать напрямую:

string input;

cout<<"Choose your Character- 1.Sven or 2.Macy: ";
cin>>input;
cin.ignore();

if ( input == "Sven" ){
    cout<<"Welcome to CRPG, my good Sir!";
}

else if ( input == "Macy"){
    cout<<"Girls cant fight, go back: ";
}
  • 2
    Зачем strcmp когда вы используете std::string ?
  • 0
    правда, я имел ввиду C String. Вы можете использовать == или std :: string :: compare в этом случае.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню