假设目标文件路径为 F:\aa.txt
CString ss = _T("F:\aa.txt");int ReadData::getFileLine(CString ss)
{ -------------------1
int n = ss.Replace(L"\\",L"\\\\"); -------------------2 //读文件
CStdioFile file; -------------------3
CString strText = _T(""); -------------------4
CString szLine = _T(""); -------------------5
file.Open(ss,CFile::modeRead); -------------------6
while( file.ReadString( szLine ) ) -------------------7
{
strText += szLine; -------------------8
}
AfxMessageBox(strText); -------------------9
file.Close();
}由于 \ 的转义字符的问题,调试的时候
第一步的时候发现,传入的参数 ss 实际上不是F:\aa.txt 而是"F:ss.txt"
因此读取文件路径数据的时候也直接出错了
请问这个问题该如何解决?
CString ss = _T("F:\aa.txt");int ReadData::getFileLine(CString ss)
{ -------------------1
int n = ss.Replace(L"\\",L"\\\\"); -------------------2 //读文件
CStdioFile file; -------------------3
CString strText = _T(""); -------------------4
CString szLine = _T(""); -------------------5
file.Open(ss,CFile::modeRead); -------------------6
while( file.ReadString( szLine ) ) -------------------7
{
strText += szLine; -------------------8
}
AfxMessageBox(strText); -------------------9
file.Close();
}由于 \ 的转义字符的问题,调试的时候
第一步的时候发现,传入的参数 ss 实际上不是F:\aa.txt 而是"F:ss.txt"
因此读取文件路径数据的时候也直接出错了
请问这个问题该如何解决?
解决方案 »
- MFC txt操作问题
- 在Windows7中,使用CreateFile,为什么GetLastError=ERROR_NOT_READY
- CString 怎样转化成16进制的char*类型
- 转贴:pai值的简洁算法(看了一定不后悔)
- 如何将MDI的标题栏上的Untitled改成别的文字
- 用SDK怎样在LISTBOX列表中添加标题栏.
- 说题外话,自己一个人学api编程很久了,却不知道该怎么着手做个什么东西
- 不好意思问一个很菜的问题:Win2000 DDK去哪里找?
- 新版vs.net好象没有ClassWizard功能,用起来有点不习惯。不知大家是否有同感?
- 怎么直接读取从网卡传入的数据
- (急切求助)音频信息采集、MP3压缩和语音聊天问题(在线等)
- CApp::InitInstance()和CDialog::OnInitDialog()有什么区别啊?
不要说废话嘛,没看到我一楼都说了知道是转义字符的问题。
关键在于我传入的参数是直接读取文件的位置,也就是 参数 ss是 F:\aa.txt
但是传进来后就变成了 F:aa.txt 这个问题不好解决,我当然知道 \ 是转义字符
我一楼都说了知道是转义字符的问题。
关键在于我传入的参数是直接读取文件的位置,也就是 参数 ss是 F:\aa.txt
但是传进来后就变成了 F:aa.txt 这个问题不好解决,我当然知道 \ 是转义字符
你是想把"\"传进来再替换成"\\"?
可你把ss初始化为"F:\aa.txt",这里面根本就没有"\"。
别人好心回答你的问题,你却说别人说的是废话,看来你需要提高的不仅仅是技术
如果文件是通过函数获取到的,这个字符串楼主就可以直接使用了,已经转化好了的
还是这样吧,启禀圣上:
请这样定义 CString ss = _T("F:\\aa.txt");
CString ss = _T("F:\\aa.txt");
就不需要
int n = ss.Replace(L"\\",L"\\\\"); -------------------2
这句了,我主按照你说的改了,还是运行不对,小心圣上雷霆大发,砍你脑袋!
你这个ss不是显然有问题么
如果F:\aa.txt是从文件读上来
那文件中是什么样读出来就是什么样
转义是做好的
- -!好吧,别讽刺我了,这个问题卡了很久了,心情不大好,对不起大家了我在阐述一下这个问题吧:CString ss 这个参数不是在函数之前定义的,而是别的地方传递进来的。用一个控件让用户选择他需要的文件,然后读取的是那个控件传递进来的参数,这个参数我暂时命名为ss,这个参数ss传递进来后,就变成了F:ss.txt
= =继续先道个歉在重新阐述下问题:
ss = _T("F:\aa.txt"); 是传递进来的参数,不是我设置的
这个是直接读取的系统文件的路径
传进来后 ss就变成了 F:aa.txt
什么控件啊,用户选择文件的话建议用CFileDialog,获取路径应该不会有问题的
应该改成
CString ss = _T("F:\\aa.txt")吧