我创建了一个DLL,用于打开控制台并读取用户的输入..
现在我遇到了读取用户输入的问题,当输入是一个用函数列出的值时,代码调用函数..
这是我的代码:
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 :(得分:1)
错误是使用operator ==来比较两个char *。虽然这个编译,它肯定不是你期望它做的,因为它比较指针的值而不是字符串。
要进行适当的比较,请使用std :: string,或者,如果必须使用原始C风格的字符串,请使用srncmp()。