问题是:为什么argv参数中的最后反斜杠被解释为转义-反斜杠,而不是反斜杠'\\'本身,因此代码:
#include <iostream>
int main(int argc, char **argv)
{
if (NumArgs > 1)
std::cout << pArgsArray[1] << std::endl;
return 0;
}Program.exe "C:\Dir\"
预期产出:C:\Dir
实际输出C:\Dir"
那么,为什么最终的反斜杠不被解释为as-is就像奥瑟斯的反奴隶??
与我们在C#中明显得到的结果相同
发布于 2014-06-20 22:43:56
在cmd中的命令行转义是完全疯狂的。空格、管道字符等用插入符号:^转义。引号用反斜杠:\转义。一个反斜杠,不是直接在引号前面,而是从字面上看。
我不知道是否有办法用反斜杠结束引用的论点。也许翻一番反斜杠会有帮助。一些消息来源还建议^\避开这样的反斜杠。
https://stackoverflow.com/questions/24336422
复制相似问题