A="D:\Kursa4\a1\a1\test1.txt";
B="D:\Kursa4\a1\a1\test1.txt";
+ A "D:Kursa411 est1.txt" std::basic_string,std::allocator > + B 0x0046cd0c "D:Kursa411 est1.txt" char *当我将其分配给char或string时,
'\'符号未被禁止。我需要将'\'替换为'/' - 但是当我写'\'时 - 表示下面的文字
我以这种格式读取文件名。并希望将\替换为/
ZeroMemory(&of, sizeof(OPENFILENAME));
of.lStructSize = sizeof( OPENFILENAME );
of.Flags = OFN_FILEMUSTEXIST| OFN_EXPLORER | OFN_ENABLESIZING;
of.lCustData = (DWORD) NULL;
//of.hwndOwner = hWnd;
of.lpstrFilter = L"*.*";
of.lpstrFile = (LPWSTR)fsFile;
of.nMaxFile = sizeof(fsFile);
of.nFilterIndex = 1;
of.lpstrFileTitle = NULL;
of.nMaxFileTitle = 0;
if(GetOpenFileName(&of) == TRUE)
{
//IDC_EDIT1
//HWND hwndEdit1 = GetDlgItem(hWnd,IDC_RADIO1);
SetWindowText(hwndEdit1, (LPCWSTR)fsFile);
}
我想从“D:/Kursa4/a1/a1/test.txt”中制作“D:\ Kursa4 \ a1 \ a1 \ test1.txt”
char B = "D:/Kursa4/a1/a1/test.txt";
家庭制作?
char B = "D:\Kursa4\a1\a1\test1.txt";
答案 0 :(得分:4)
尝试:
A="D:\\Kursa4\\a1\\a1\\test1.txt";
B="D:\\Kursa4\\a1\\a1\\test1.txt";
在C ++源代码中,\
符号修改字符串中下一个符号的含义。 \t
,例如“水平标签”,而\n
表示“新线”。
要插入实际的\
字符,您必须输入\\
。
答案 1 :(得分:1)
你的问题很难理解,但从我看到的你并没有逃避你的反斜杠。
使用
A="D:\\Kursa4\\a1\\a1\\test1.txt";
答案 2 :(得分:1)
在C ++(和C语言)中,在字符串和字符文字中,反斜杠是一个
“逃避性格”;这意味着它不代表自己,但是
发出以下内容的信号(通常是下一个字符,但有时候
更多)具有特殊意义。从而。从你的字符串,两个字符
字符串或字符文字中的序列"\a"
表示字符
生成一个声音警报,BEL字符(大多数编码为0x07)。
当然,您几乎肯定会看到"\n"
换新行
字符,以及引号字符的"\""
;标签为"\t"
性格也很频繁。
这会产生问题:如何在字符串中插入反斜杠
文字。答案是:我们插入其他字符的方式相同
不能直接指定:使用转义序列。在这种情况下,
"\\"
。
最后:您的文字看起来像Windows文件名。在这种情况下,你是
最好使用'/'
作为目录分隔符;如果没有
否则,键入和阅读会更容易,因为您不需要使用
一个逃脱序列。出于显示目的,如果您担心
使非编程用户感到困惑(他们可能不知道/
和\
在Windows下工作),快速通过std::replace
将修复
显示字符串。