2015-09-25 7 views
0

я создал DLL, которая открывает консоль и читать входы пользователя ..Чтение пользовательского ввода из станд :: cin.get

Теперь я получил проблему с чтением ввода пользователем и когда вход является значение, перечисленный с функцией код вызывает функцию ..

Вот мой код:

void UserTest::Menu() { 
char UserInput[256]; 

centerstring(" <<- Functions ->>\n\n"); 

centerstring("<<- VEHICLE ->>\n"); 
centerstring("<<- KEYBIND ->>\n"); 
centerstring("<<- EXECUTE ->>\n"); 
centerstring("<<- CLEAR ->>\n"); 

std::cin.clear(); 
std::cin.sync(); 

std::cin.get(UserInput, 256); 

if (UserInput == "CLEAR"){ 
    UserTest::ClearConsole(); 
    UserTest::Menu(); 
}else{ 
    if (UserInput == "VEHICLE"){ 
     centerstring("<<- VEHICLE ->>\n"); 

     UserTest::PreCallVehicle(UserInput); 
    }else{ 
     if (UserInput == ("EXECUTE")){ 
      centerstring("<<- SCRIPT ->>\n"); 

      UserTest::PreCallScript(UserInput); 
     }else{ 
      if (UserInput == "KEYBIND"){ 
       centerstring("<<- KEYBINDS ->>\n\n\n"); 

       UserTest::PreCallKeybind(); 
      }else{ 
       UserTest::ClearConsole(); 
       centerstring("<<- ERROR ->>\n"); 
      } 
     } 
    } 
} 

}

+0

В чем проблема? – NathanOliver

+0

Когда я печатаю VEHICLE или любую другую указанную строку в консоли, я получаю centerstring («<< - ERROR - >> \ n»). – 2291eefe

+2

Возможный дубликат [Могу ли я использовать! = И == в C++ для сравнения строк без написав мой собственный?] (http://stackoverflow.com/questions/19232814/can-i-use-and-in-c-for-string-comparison-without-writing-my -own) – NathanOliver

ответ

1

ошибка с помощью оператора ==, чтобы сравнить два полукокса * , Хотя это компилируется, это, безусловно, не то, что вы ожидаете от него, поскольку оно сравнивает значение указателя, а не строку.

Для правильного сравнения используйте либо std :: string, либо, если вы должны использовать необработанные строки в стиле C, используйте srncmp().

+1

наверняка это дубликат и должен быть закрыт как таковой. – NathanOliver

+1

@NathanOliver, у меня нет проблем с этим :) – SergeyA

Смежные вопросы