-1

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

4

1 回答 1

2

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

在命令行上?Check 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 上有很多例子)并检查你是否只解析了一个单词。这只是一个示例,不一定是最佳的,但它应该为您指明正确的方向。

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

于 2016-10-05T15:52:11.250 回答