1

我正在实现一个小命令行解析器。假设我有一个需要 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()但它们不起作用。那我该如何检查呢?

谢谢。

4

1 回答 1

6

如果你想读一行,那么你应该使用std::getline. 一旦你有了整行,你可以把它分解成单词,不管有多少。

于 2010-08-18T15:22:00.307 回答