如何在c++中使用getopt_pp
How to use getopt_pp in c++?
我知道这是个小问题。我在这里使用了这个示例代码。它应该如何工作?我以为你可以为谁输入一些内容,但它会立即关闭。
#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;
}
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
对小程序来说可能还可以,但它可能会在更实质性的项目中引发问题(就污染标准名称空间而言,请参阅此处以获得良好的解释(。我更喜欢完全限定我的电话,例如:
std::cout << "blah, blah, blahn";
第三,endl
被大多数开发人员使用得太频繁了。大多数时候,您应该使用'n'
,或者将n
添加到像"Hello, world!n"
这样的字符串的末尾。这是因为n
方式不会像endl
那样强制可能低效的流冲洗。这里已经涵盖了。
相关文章:
- 在C++中,如果"int a = 3; int* p = &a;",那么为什么不允许"const int* &pp = p",但允许"const int* const &pp = p"?
- *++*++ppp,*++pp[1],*++(*(1+ppp)有什么具体的区别吗?(C/C++指针问题)
- atof coredump with getopt
- 在C++中使用getopt时打印默认参数
- Playing around with getopt
- 代码 P 的问题:PP 演练 4
- C++ (int getopt(argc, (char **)argv, optstring)
- Getopt总是返回1
- C/C++ getopt optstring syntax
- Windows C 上GetOpt功能的替代方法是什么?
- getopt:不识别有效的命令行参数
- 使用c++stl替代unistd.h getopt
- 带有“getopt”的分段错误
- 有没有办法"reset" getopt用于非全局使用?
- GetOpt Long 認識到冗長
- 单词比较 - 向量/getopt
- 无法打开包含文件"getopt.h"
- 如何正确调用getopt函数
- getopt 命令行获取值 C++
- 我该如何使用getopt