好吧,我知道我能做到循环是这样的:
for (int i=1; i<=argc-1;i++) {
cout << argv[i] << endl;
}
不过这样一来双引号丢失,这是一个字符串"something here"
被视为args数组的一个元素和报价都将丢失。
好吧,我知道我可以假设,如果报价参数具有内部空间,但行情总是在失去不管是否有空间或没有。
好吧,我知道我能做到循环是这样的:
for (int i=1; i<=argc-1;i++) {
cout << argv[i] << endl;
}
不过这样一来双引号丢失,这是一个字符串"something here"
被视为args数组的一个元素和报价都将丢失。
好吧,我知道我可以假设,如果报价参数具有内部空间,但行情总是在失去不管是否有空间或没有。
当你需要的原始命令行,你可以使用GetCommandLine() API函数。
它是消除了引号的外壳。 如果您希望shell的报价传递给你,你必须转义:
$ ./my-program \"hello\ world\"
请注意,我逃避的空间为好,使它一个参数。