检查std :: cin运算符>>已阅读全行

时间:2010-08-18 15:18:59

标签: c++ input end-of-line

我正在实现一个小命令行解析器。假设我有一个需要2个参数的命令。我想让用户在一行以及多行上键入所有3个字符串(命令和2个参数)。目前我有这样的事情:

std::string command;
std::cin >> command;
std::cout << command << " entered\n";
std::string param1;
std::cin >> param1;
std::cout << param1 << " entered\n";
std::string param2;
std::cin >> param2;
std::cout << param2 << " entered\n";

现在我希望能够检测到用户刚刚输入了没有任何参数的命令,并为此输出了指示。我想在获得命令之后我应该测试该行是否包含其他内容,如果没有,请让用户输入更多内容。我尝试使用eof()fail(),但它们不起作用。那我怎么检查呢?

感谢。

1 个答案:

答案 0 :(得分:6)

如果您想阅读一行,则应使用std::getline。一旦你掌握了整行,就可以把它分解为单词,无论多少都有。