在c ++中,如何检查是否有多个输入?

时间:2016-10-05 15:25:40

标签: c++ input output error-checking

例如,用户输入两个输入而不是一个输入,如何检测并输出错误信息?

1 个答案:

答案 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进行的修改。