我正在实现一个小命令行解析器。假设我有一个需要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()
,但它们不起作用。那我怎么检查呢?
感谢。
答案 0 :(得分:6)
如果您想阅读一行,则应使用std::getline
。一旦你掌握了整行,就可以把它分解为单词,无论多少都有。