我正在尝试为我的程序创建一个 Linux 手册页。我正在使用 getopt 来解析几个命令行参数和标志,其中之一可能是“h”,它应该打印手册页然后退出。
我在 VS 2013 中编程,这个烦人的小错误不会消失。根据智能感知,在表示“-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;
}
如何解决这个特别烦人的错误?提前致谢。
最佳答案
当我复制并粘贴您的源代码时,我得到了一些奇怪的不可打印字符,包括 "-c, --container\n"
行中的一些字符。它们似乎是 UTF-8 编码的 SOFT HYPHEN
字符(UTF-8 编码可能是您将代码复制并粘贴到 Web 浏览器的方式的产物)。过滤掉那些,你应该没问题。
关于c++ - Intellisense 期望 ';' 带有多行字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22334321/