大问题!大问题!小毛病

xomae 2007-05-23 04:36:03
用什么函数能把TXT文件的内容读出来,具体代码怎么写
我用CFile 但是读出来最后会出现空格符号和乱吗
程序如下
void CMathDoc::OnOpen()
{
// TODO: Add your command handler code here
CFileDialog Open_dlg( false, _T(".txt"), 0, OFN_FILEMUSTEXIST,
_T("TXT Files (*.*)|*.*|"), NULL );

if(! Open_dlg.DoModal()==IDOK )
{
return;
}
CFile mFile;
if (mFile.Open(Open_dlg.GetPathName(),CFile::modeRead | CFile::typeBinary))
{
CString Mes;
long FileLeng=mFile.GetLength();
Mes.Format("Size:%d",FileLeng);
AfxMessageBox(Mes);
ReadChar=new char[FileLeng];
mFile.Read(ReadChar,FileLeng);
}


MathCode Mathcodedlg;
Mathcodedlg.m_ArithSerial=ReadChar;
Mathcodedlg.DoModal();
}
...全文
281 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jerry_haotian 2007-05-28
  • 打赏
  • 举报
回复
long FileLeng=mFile.GetLength();
这句后面加一句FileLeng++;
jerry_haotian 2007-05-25
  • 打赏
  • 举报
回复
最后b4一下vc6....... 在DEBUG模式下有上面的问题 如果用release就没这个问题了 ft....闪了
jerry_haotian 2007-05-25
  • 打赏
  • 举报
回复
typed unsigned int UINT
unsigned int strlen(const char *);
问题在哪?
merlinfang 2007-05-24
  • 打赏
  • 举报
回复
这句有问题,不一定是字符串
UINT lengthOfR=strlen(ReadChar);
xomae 2007-05-24
  • 打赏
  • 举报
回复
谢谢楼上 还在学习中:]
jerry_haotian 2007-05-24
  • 打赏
  • 举报
回复
char *ReadChar= new char[FileLeng];
!~!~!~!~!~!~!~ 问题所在....................
说不清..... 我用的VC6
jerry_haotian 2007-05-24
  • 打赏
  • 举报
回复
补充,我和txt文件长度是79,结束符应该没有加判断,加上判断之后应该就会好了
jerry_haotian 2007-05-24
  • 打赏
  • 举报
回复
二楼的代码加几句话,就知道问题出在哪了.
CFile mFile;

if (mFile.Open("E:\\License.txt",CFile::modeRead ))
{
CString Mes;
UINT FileLeng=mFile.GetLength();
Mes.Format("Size:%d",FileLeng);
AfxMessageBox(Mes);
char *ReadChar=new char[FileLeng];
mFile.Read(ReadChar,FileLeng);
UINT lengthOfR=strlen(ReadChar);
Mes.Format("Size:%d",lengthOfR);
AfxMessageBox(Mes);
AfxMessageBox(ReadChar);
delete [] ReadChar;
mFile.Close();
}
重复点几下button会发现,ReadChar的长度是80,85,89不定....我不知道为什么
xomae 2007-05-23
  • 打赏
  • 举报
回复
我用二楼改过的那段代码试了 在后面还是有空格符和乱码 还在研究ing
xomae 2007-05-23
  • 打赏
  • 举报
回复
恩 我现在要读的都是文本里的二进制数,比如111010101 文本里也就有这些二值码 可是读进来在二进制码后会有空格和乱码 白思不的其解呀
xomae 2007-05-23
  • 打赏
  • 举报
回复
LS 这样一来就只能按指定的文件打开了吗?
我是要读二进制的 CFile::typeBinary是字节的 不知道怎么读二进制 所以还想着要怎么转换
Jack_xiao 2007-05-23
  • 打赏
  • 举报
回复
如果文件内容有规律,按规律读
否则可按字符读入一个缓冲区中,需要什么找什么
Rainstorey 2007-05-23
  • 打赏
  • 举报
回复
CFile mFile;

if (mFile.Open("C:\\License.txt",CFile::modeRead ))
{
CString Mes;
long FileLeng=mFile.GetLength();
Mes.Format("Size:%d",FileLeng);
AfxMessageBox(Mes);
char *ReadChar=new char[FileLeng];
mFile.Read(ReadChar,FileLeng);
AfxMessageBox(ReadChar);
delete [] ReadChar;
}
OpenHero 2007-05-23
  • 打赏
  • 举报
回复
CFile::typeBinary 二进制的方式读的?

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧