0
我尝试编码具有命令行参数作为输入的程序。当我在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编译并运行和测试。
引号中的任何内容都作为** one **参数传递。 – Galik
CMD中的引号转义了大部分特殊字符,但它们与CMD将*参数*传递给程序没有任何关系。引用由CMD部分解析,以查找引用的文件。否则,它会被进程本身解析。 Windows程序使用命令行字符串执行,它们通常使用[C运行时解析参数](https://docs.microsoft.com/en-us/cpp/cpp/parsing-cpp-command-line -arguments)或者调用'CommandLineToArgvW',它使用类似的规则。 – eryksun