C ++: отображение переменной

0

У меня есть быстрый вопрос о C++. Я делаю текстовую игру, и я хочу, чтобы игрок мог ввести "Score" и он напечатает текущую оценку (int score = 50). Я использую if(Choice == 3) для чисел, но я хочу иметь возможность вводить слова во входные данные.

Может ли кто-нибудь помочь?

Спасибо за прочтение.

  • 0
    Прочитайте в строки и сделайте (возможно, без учета регистра) сравнение.
Теги:
variables
int

4 ответа

1
std::string input;
cin >> input;
// lowercase it, for case-insensitive comparison
std::transform(input.begin(), input.end(), input.begin(), std::tolower);

if (input == "score")
  std::cout << "Score is: " << score << std::endl;
  • 0
    +1 за добавление кода для преобразования в нижний регистр.
0

Пытаться:

std::string userInput;

// Takes a string input from cin and stores in userInput variable
getline(std::cin, userInput);   

// Check if user input is "Score"
if (userInput.compare("Score") == 0)
{
    std::cout << "Score = " << score << std::endl;
}

Если пользовательский ввод "Оценка", то сравнение будет точным совпадением, а userInput.compare() вернет 0, поэтому мы проверяем, равен ли он его нулю.

0

Бит трудно догадаться, что именно вы пытаетесь сделать, но в целом, если вы хотите сравнить строки, вы используете процедуры сравнения строк. Например

#include <iostream>

int main(void) {
    std::string choice;
    std::cout<<"Please enter your choice:"<<std::endl;
    std::cin>>choice;
    if (choice.compare("score")==0) {
       std::cout << "score!" << std::endl;
    }
    else {
      std::cout << "fail!" << std::endl;
    }
}

Если вы используете boost, вы можете делать нечувствительность к регистру. Или вы можете вводить ввод во все строчные буквы. Google "нечувствительная к регистру строка сравнения c++" для получения дополнительной информации.

0

Используйте std::getline чтобы прочитать полную строку в строке, а затем просто сравните строку с ==.

Есть много других способов сделать это, но любое решение, не основанное на std::getline, вероятно, бесполезно сложно.

Ещё вопросы

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