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

In c++, how do I check if there was more than one inputs?

本文关键字:是否 检查 输入 c++ 何检查      更新时间:2023-10-16

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

用户输入两个输入,在哪里?

在命令行?检查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);

现在您已经得到了整个输入字符串。你可以用空格分割字符串(在StackOverflow上有很多这样的例子),并检查你只解析了一个单词。这只是一个例子,不一定是最优的,但它应该为您指明正确的方向。

您也可以使用istringstream,只解析出第一个单词并丢弃其余的,这是对这个StackOverflow示例的修改。