Может быть, мой код небрежный, но по какой-то причине он просто проходит через все вложенные проверки If, не останавливаясь, чтобы проверить ответ, кроме первого. Кроме того, первая проверка If переходит к вложенному If for True независимо от того, что даже если я даю неверный ответ. Я довольно новичок в C ++, так что, мне чего-то не хватает?
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout<<" \n";
cout<<"UUU UUU RRRRRRR TTTTTTTTT HHH HHH\n";
cout<<"UUU UUU RRR RRR TTT HHH HHH\n";
cout<<"UUU UUU RRRRRRR TTT HHHHHHHH\n";
cout<<"UUU UUU RRR RRR TTT HHH HHH\n";
cout<<" UUUUUUU RRR RRR TTT HHH HHH\n";
cout<<" \n";
cout<<" Created by: Illyduss\n";
cout<<" 2015\n";
cout<<" \n";
cout<<" \n";
cout<<" \n";
int account;
cout<<"Do you already have an account? \n";
cout<<"Type 'New' to create an account or enter your account name.\n";
cout<<"Account Name: ";
cin>> account;
cin.ignore();
if (account = "New" or "NEW" or "new"){
string surname;
cout<<" \n";
cout<<"Account names serve as the Surname or Last name for\n";
cout<<"all characters linked to said account. This is beca\n";
cout<<"use of our unique gene pool system. Which will be c\n";
cout<<"overed more in depth later on, but for now just thi\n";
cout<<"nk of it like this, an account is a family tree for\n";
cout<<"all of your characters.\n";
cout<<" \n";
cout<<"Please enter your desired Surname Name: ";
cin>> surname;
cin.ignore();
if (surname.length() > 2){
cout<<" \n";
cout<<"You have chosen, '" << surname << "' as your surname, correct? ";
}
else {
cout<<"That is too short, please choose another surname: ";
}
}
else {
cout<< "Welcome back, '" << account << "'!\n";
cout<<"Please enter your password: ";
}
cin.get();
}
Прежде всего вы пытаетесь использовать объект типа int
что для ввода строки, а затем вы пытаетесь сравнить этот объект со строковыми литералами, используя неправильное условие и оператор присваивания
if (account = "New" or "NEW" or "new"){
^^
Вы должны определить account
как имеющий тип std::string
и в этом случае состояние может выглядеть
if (account == "New" or account == "NEW" or account == "new"){
но в любом случае было бы лучше конвертировать account
используя некоторый промежуточный объект в верхний регистр. В этом случае условие будет выглядеть проще.