我如何防止在“ argv”中丢失双引号?

问题描述 投票:0回答:2
我知道我可以这样进行循环:

for (int i=1; i<=argc-1; i++) { cout << argv[i] << endl; }
但是,这种方式丢失了双引号,那就是字符串

"something here"

被视为args数组的一个元素,引号丢失了。
我知道我可以假设参数是否内部有空间,但是无论是否有空间,它总是会丢失。

是去除报价的外壳。如果您希望外壳将报价传递给您,则必须逃脱它们:
c++ console mingw
2个回答
9
投票
$ ./my-program \"hello\ world\"

注意我也逃脱了空间,使其成为一个论点。

当您需要原始命令行时,您可以使用

GetCommandline()

3
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.