在MFC中这样操作文件怎么不对?
我想实现的是:把数组 m_hist里面的浮点数据逐个读到文件中,以方便检查数据的正确性!
相应的代码如下:
#include <fstream>
..........
..........
ofstream outfile("hist",ios_base::out);
if(!outfile)
{
cerr<<"can't open file"<<endl;
exit(-1);
}
else
{
for (i=0; i<256; i++)
{
if( (i%16) == 0)
{
outfile<<endl;
outfile<<m_hist[i]<<", ";
}
else
{
outfile<<m_hist[i]<<", ";
}
}
}
结果编译出错,说ofstream不认识,明明是定义了头文件的,是不是MFC里面不能这样用?
现改用CFile文件类:
代码如下:
CFile mfile;
mfile.Open("hist.txt",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite);
CArchive ar( &mfile, CArchive::store );
CString str;
for (i=0; i<256; i++)
{
if( (i%16) == 0)
{
ar<<"\n";
ar<<m_hist[i]<<",";
}
else
{
ar<<str<<",";
}
}
ar.Close();
mfile.Close();
打开文本文件 hist.txt, 发现诸如"\n"换行,“,”逗号这些都变成小方块了,ms不认识,另外,如果我在打开模式中加入 CFile::typetext 这一项,编译也通不过,不知为何?
关于文件读写的问题始终有很多不清楚的地方,还望各位点拨迷津!