例如,用户输入两个输入而不是一个,我如何检测并输出错误消息?
问问题
338 次
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 回答