(Использование dev C++) Поскольку я довольно новичок в C++, я решил создать базовую игру для RPG. Я много раз отлаживал программу и ничего не выдумывал. Каждый раз, когда я тестирую программу, и, скажем, хочу атаковать путешественника, он печатает TEST (который я там поставил, пока не смогу исправить проблему). Если я переключу if (attack == "talk" || "Talk") с if (attack == "attack" || "Attack"), тогда я хочу поговорить с путешественником, которого он печатает: «Вы мчатесь вперед и убиваете путешественник, чтобы найти, что он не вооружен! " Вся помощь будет оценена.Вложенные проблемы с оператором - Оператор сравнения
#include <iostream>
#include <string>
using namespace std;
int main() {
string dir, attack, trade;
string inventory[] = {"Food", "Sword", "Armor"};
cout << "Do you go left, right or forward?" << endl;
cin >> dir;
if(dir=="left"||"Left") {
cout << "You decide to go left" << endl;
cout << "On the way you meet a traveller, do you attack or talk?" << endl;
cin >> attack;
if(attack=="talk"||"Talk") {
cout << "TEST" << endl;
}
else if(attack=="attack"||"Attack") {
cout << "You rush forward and murder the traveller to find he was un-armed!\a" << endl;
}
else {
cout << "test" << endl;
}
}
else if(dir=="Right"||"Right") {
cout << "You decide to go right" << endl;
}
else {
cout << "You decide to go forward" << endl;
}
system("PAUSE");
return 0;
}
Измените его на 'dir ==" left "|| dir ==" Left "'. Иначе это будет всегда «правда». – songyuanyao
Поиск в Интернете для «строки преобразования C++». Если перед сравнением вы преобразуете строку во все прописные буквы или все строчные буквы, вам нужно будет сделать только одно сравнение. –
Кстати, у вас есть опечатка в вашем чеке для «правильного» направления; оба текста сравнения одинаковы. –