好的,我知道我可以像这样循环:
for (int i=1; i<=argc-1;i++) {
cout << argv[i] << endl;
}
但是这种方式会丢失双引号,即字符串 "something here"
被视为 args 数组的一个元素并且引号会丢失。
好的,我知道如果参数内部有空格我可以假定引号,但无论是否有空格,引号总是丢失。
最佳答案
是删除引号的 shell。如果您希望 shell 将引号传递给您,您必须对它们进行转义:
$ ./my-program \"hello\ world\"
请注意,我也对空格进行了转义,使其成为一个参数。
关于c++ - 如何防止在 argv 中丢失双引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10830418/