如何防止argv中失去双引号?(how to prevent losing double quote

2019-06-25 09:14发布

好吧,我知道我能做到循环是这样的:

for (int i=1; i<=argc-1;i++) {
  cout << argv[i] << endl;
}

不过这样一来双引号丢失,这是一个字符串"something here"被视为args数组的一个元素和报价都将丢失。

好吧,我知道我可以假设,如果报价参数具有内部空间,但行情总是在失去不管是否有空间或没有。

Answer 1:

当你需要的原始命令行,你可以使用GetCommandLine() API函数。



Answer 2:

它是消除了引号的外壳。 如果您希望shell的报价传递给你,你必须转义:

$ ./my-program \"hello\ world\"

请注意,我逃避的空间为好,使它一个参数。



文章来源: how to prevent losing double quotes in argv?