在命令行参数中使用引号

时间:2017-08-13 19:31:39

标签: c++ cmd codeblocks

我尝试编写具有命令行参数作为输入的程序。当我在cmd中的引号内使用命令行参数时,如

g++ -o filename.exe filename.cpp // for compiling

filename.exe "2 -1 0 2 -3" // run command

答案不正确。但是当我使用

g++ -o filename.exe filename.cpp // for compiling

filename.exe 2 -1 0 2 -3 // run command

答案是正确的......为什么会发生......有人可以建议一些事情来纠正它......我用c ++代码和cmd进行编译和运行测试。

1 个答案:

答案 0 :(得分:1)

  

您传递了由空格分隔的所有命令行参数,但是如果   参数本身有一个空格,然后你可以传递这样的参数   将它们放在双引号"" 或单引号''

所以

"2 -1 0 2 -3"  // One argument

,而

2 -1 0 2 -3    // Five arguments

你可以将它们组合起来

"2 -1 0" 2 -3  // Three arguments

使用main()函数参数处理命令行参数,其中argc表示传递的参数数量,argv []是指向传递给程序的每个参数的指针数组。

int main(int argc, char *argv[]) { ... }

argv[0]始终是程序名称。在您的情况下filename.exe