我知道这是一个菜鸟问题。我使用了来自here的示例代码。它应该如何工作?我以为你可以为谁输入一些东西,但它会立即关闭。
#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;
}
答案 0 :(得分: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中运行,则可能需要在getchar()
之前放置cin >> who
(或return
)。否则,输出将转到窗口并立即消失。
其次,尽管小型程序可能没问题,但using namespace std
可能会导致更多实质性项目出现问题(在污染标准名称空间方面,请参阅here以获得详细说明)。我更喜欢完全符合我的要求,例如:
std::cout << "blah, blah, blah\n";
第三,大多数开发人员经常使用远 endl
。大多数情况下,您应该只使用'\n'
,或者只需将\n
添加到"Hello, world!\n"
之类的字符串末尾。那是因为\n
方式不会像endl
那样强制流可能无效的刷新流。这包括here。