0

我知道这是一个菜鸟问题。我从这里使用了这个示例代码。它应该如何工作?我以为你可以为谁输入一些东西,但它会立即关闭。

#include <iostream>
#include "getopt_pp_standalone.h"

using namespace GetOpt;
using namespace std;

 int main(int argc, char* argv[])
 {
    string who;

    GetOpt_pp ops(argc, argv);

    ops >> Option('n', "name", who, "world" );              /* the default name is 'world' */

    cout << "Hello " << who << "!" << endl;

    return 0;
}
4

1 回答 1

0

从命令行getopt获取选项的变体,而不是用户输入。

您将需要使用以下内容运行您的程序:

myprog -n Pax

如果您想要用户的交互式输入,请完全摆脱这些getopt东西并只使用流,例如:

std::cout << "Identify yourself, interloper!\n";
std::cin >> who;
std::cout << "Hello, " << who << ", my name is Pax.\n";

其他几件事要传授:

首先,如果您在关闭执行窗口而不是等待的 IDE 中运行,您可能需要在 if 之前放置一个getchar()(或cin >> who) 。return否则,输出将转到窗口并立即消失。

其次,虽然对于小型程序来说可能没using namespace std问题,但可能会导致更重要的项目出现问题(就污染标准命名空间而言,请参阅此处以获得良好的解释)。我更喜欢完全限定我的电话,例如:

std::cout << "blah, blah, blah\n";

第三,大多数开发人员过于频繁地使用endl它。大多数情况下,您应该直接使用,或者只是添加到字符串的末尾,例如. 那是因为这种方式不会像这样做那样强制可能低效的流冲洗。此处已介绍。'\n'\n"Hello, world!\n"\nendl

于 2013-02-25T08:57:09.280 回答