【问题标题】:In c++, how do I check if there was more than one inputs? [closed]在 c++ 中,如何检查是否有多个输入? [关闭]
【发布时间】:2016-10-05 15:25:40
【问题描述】:

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

【问题讨论】:

  • 取决于读取输入的方法。
  • 你的意思是什么输入。
  • 例如,我想要一个单词(一个字符串)作为输入。但是,用户可能只输入一个单词,使用空格,然后输入另一个单词(两个输入)。如何检测第二个单词?我只为第一个单词声明了一个字符串,它不存储第二个单词。
  • 你的有多大?
  • 没关系,我只想在用户输入多于一个输入时输出错误信息。

标签: c++ input output error-checking


【解决方案1】:

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

在命令行上? 检查argc,它是调用时传递给应用程序的参数计数。

int main(int argc, char** argv) {
  // argc will always at least be 1,
  // since the program name is always passed
  if (argc > 3)
  ...
}

如果您谈论的是在运行时检查其他地方的输入,正如其他 cmets 所说,它取决于您使用哪种方法来读取输入。如果我们不知道这一点,就很难提出一种方法。

根据您在评论中给出的示例,这是一个想法:

std::string str;
// take everything from stdin up to the next newline
std::getline(std::cin, str);

现在您已经获得了整个输入字符串。您可以用空格分割字符串(here on StackOverflow 的许多示例)并检查您是否只解析了一个单词。这只是一个示例,不一定是最佳的,但它应该为您指明正确的方向。

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

【讨论】:

    猜你喜欢
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 2020-12-14
    • 2014-10-24
    • 2011-08-05
    相关资源
    最近更新 更多