我正在尝试获取一个字符串处理程序,它在字符串类型变量中从用户获取输入...但它崩溃了,我想知道为什么?或者我做错了什么......
string UIconsole::getString(){
string input;
getline(cin,input);
if(input.empty() == false){
return input;
}
else{getString();}
return 0;
}
编辑: 错误:
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct null not valid
答案 0 :(得分:7)
您有几个错误,但邮件引用的具体错误是:
return 0;
您无法从空指针构造std::string
。如果您想要一个空字符串,请尝试以下其中一个结构:
return "";
return std::string();
<小时/> 您的另一个错误是对
getString()
的递归调用。你在那里尝试做什么并不清楚。也许这样做你想要的:
// untested
std::string UIconsole::getString(){
std::string input;
while(std::getline(std::cin, input) && input.empty()) {
// nothing
}
return input;
}