如何在变量中存储“(双引号)字符?

时间:2013-06-09 16:45:49

标签: c++ char

我正在编写一个c ++程序,但我在将" char存储在一个变量中时遇到问题,并且在搜索网络中的解决方案后我发现了一种方式,但每当我编译它时我得到[警告] \ 040 ..这是我要存储的字符数组:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
我是这样做的:

const char com1[]="reg add \"\\HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\"\\ /v fDenyTSConnections /t REG_DWORD /d 0 /f";

问题是我得到以下输出,在结束后放一个反斜杠“..

reg add "\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server"\ /v fDenyTSConnections /t REG_DWORD /d 0 /f

所以可以告诉我PLIZ该做什么??

2 个答案:

答案 0 :(得分:0)

而不是

const char com1[]="reg add \"\\HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\"\\ /v fDenyTSConnections /t REG_DWORD /d 0 /f";

使用

const char com1[]="reg add \"\\HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\" /v fDenyTSConnections /t REG_DWORD /d 0 /f";

在您的代码中有一个额外的\\

答案 1 :(得分:0)

\此处 - "之后还有一个"\HKEY不应该存在。

\"\\表示转发"和转义\。你只想在这两个地方\"

const char com1[]="reg add \"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\" /v fDenyTSConnections /t REG_DWORD /d 0 /f";