好的,我知道我可以像这样循环:
for (int i=1; i<=argc-1;i++) {
cout << argv[i] << endl;
}
但这样双引号丢失,即字符串"something here"
被视为args数组的一个元素,引号丢失。
好的,我知道如果参数里面有空格,我可以假设引号,但无论是否有空格,引号都会丢失。
答案 0 :(得分:8)
删除引号的是shell。如果您希望shell将引号传递给您,则必须转义它们:
$ ./my-program \"hello\ world\"
请注意,我也会逃避空间,使其成为一个参数。
答案 1 :(得分:3)
当您需要原始命令行时,您可以使用GetCommandLine() API函数。