我正在完成一个c ++程序并且有一个我似乎找不到修复的最后一个问题。我有代码cpcmd += '"' + path + '"' + " " + '"' + dek + '"'
在找到类似于我的问题后,我尝试了以下内容。
cpcmd += "\"" + path + "\"" + " " + "\"" + dek + "\""
cpcmd += \" + path + \" + " " + \" + dek + \"
后者甚至没有编译。如果我可以避免使用双引号,我会,但我需要将命令传递给cmd。 为什么在我尝试的第一种方式中添加双引号会导致将额外的\添加到我追加的字符串的末尾?它会在双引号和附加到字符串末尾之间添加。
在回答评论时,cpcmd是一个字符串,这里的所有变量都是。
我知道我会被投票但我不明白为什么。如果我能够通过谷歌搜索找到这个问题的答案,我就不会问它了。
在回答要求完整示例的评论时,以下内容将产生我在调试器中讨论的内容。
我
#include <iostream>
#include <string>
int main()
{
std::string test = "this is a string";
test += '"';
std::cout << test;
}
更新:我很抱歉我在调试器时遇到了很多问题,以至于我认为在局部变量的值中显示的内容是传递的内容。再次,我很抱歉,请不要再这样做了。我已经投票决定将其删除。