【发布时间】:2012-02-21 18:48:43
【问题描述】:
我尝试通过这种方式验证用户是否没有输入任何内容
bool null_input = false;
int i = 0;
while (null_input == false) {
char *name = new char[255];
std::cout<<"Name :";
std::cin>>name;
if (name == "") {
null_input = true;
break;
}
else star[i++].name = name;
}
无论如何,如果我按 ENTER 而不输入任何内容,cin 仍然等待有效输入。问题是如何正确验证是否没有引入任何内容?
【问题讨论】:
-
使用
std::string+std::getline()代替std::cin>>name;(当name是char*时,name == ""将永远无法正常工作)。 -
new char?你在用哪本 C++ 书? -
建议:代替“char *name = new char[255];”,使用:“String name;”这样,你之后就不需要释放任何东西了。而且它是一种更 C++ 的做事方式......