请查看下面的代码片段,特别是第一个“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;
}
}
}
最佳答案
cin >> choice
在第一个空格之前停止读取。你想要 getline(std::cin, choice)
在这里。
关于c++ - 简单问题:为什么字符串库函数std::string::find总是返回std::string::npos?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6389401/