例如,用户输入两个输入而不是一个输入,如何检测并输出错误信息?
答案 0 :(得分:2)
用户输入两个输入?
在命令行上?
检查argc
,这是调用时传递给应用程序的参数计数。
int main(int argc, char** argv) {
// argc will always at least be 1,
// since the program name is always passed
if (argc > 3)
...
}
如果您正在谈论在运行时在其他地方检查输入,那么,正如其他评论所说,它取决于您使用哪种方法来读取输入。如果我们不知道这一点,很难提出一个方法。
根据您在评论中提供的示例,这是一个想法:
std::string str;
// take everything from stdin up to the next newline
std::getline(std::cin, str);
现在您已经获得了整个输入字符串。您可以按空格分割字符串(许多here on StackOverflow示例)并检查您是否只解析了一个单词。这只是一个例子,并不一定是最优的,但它应该指向正确的方向。
你也可以使用istringstream
并解析第一个单词并丢弃其余单词,这是对this StackOverflow example进行的修改。