请参阅下面的代码片段,特别是第一个'else if'语句。我希望用户能够这样做:
加载文件名
所以我想检查字符串中的“load”并尝试打开“load”之后的内容。但是,string :: npos似乎总是被返回(string :: npos只意味着没有位置)。
我可能做了一些愚蠢的事 - 这是基本的东西!
void Main::user_choice() {
string choice;
while(choice != "exit") {
cout << "> ";
cin >> choice;
if(choice == "view") {
Main::view_frameworks();
}
else if(choice.find("load ") != string::npos) {
}
else if(choice == "exit") {
return;
}
else {
cout << "Invalid command" << endl;
}
}
}
答案 0 :(得分:6)
cin >> choice
在第一个空格之前停止阅读。你想在这里getline(std::cin, choice)
。