我正在尝试为我的程序创建一个linux手册页。我正在使用getopt来解析几个命令行参数和标志,其中一个可能是'h',它应该打印手册页然后退出。
我在VS 2013中编程,这个唠叨的小错误不会消失。根据intellisense,预计在“-c, - container \ n”这一行上会加一个分号。根据我对多行字符串文字的理解,你只需要在要放入std :: string的文本体后面加一个分号,这就是为什么这特别令人沮丧。
以下是我的代码:
case 'h':{
string out;
out = "NAME\n"
"\tblah.\n"
"SYNOPSIS\n"
"\tmore text\n"
"\tprogram (-h | --help)"
"DESCRIPTION\n"
"\ttext text text\n"
"\tAI. mpre text\n"
"\ttext\n"
"\ttext.\n"
"OPTIONS\n"
"-h, --help\n"
"\tPrint this help screen and exit.\n"
"-c, --container\n"
"\ttext\n"
"\ttext\n"
"text\n"
"\ttext.\n"
"-v, --verbose N\n"
"\tdescriptions\n"
"\tstatistics.\n"
"-d, --debug\n"
"\ttext\n";
ss << out;
cout << ss.str();
cout.flush();
exit(0);
break;
}
如何解决这个特别恼人的错误?提前谢谢。
答案 0 :(得分:2)
当我复制并粘贴您的源代码时,我会得到一些奇怪的不可打印字符,包括"-c, --container\n"
行上的一些字符。它们似乎是UTF-8编码的SOFT HYPHEN
字符(UTF-8编码可能是您将代码复制并粘贴到Web浏览器中的工件)。过滤掉那些你应该没问题。