BYTE U[200];
CString hexfile;
hexfile=_T("d:\\123.txt");
if(!file.Open (hexfile,CFile::modeReadWrite))
{
file.Open(hexfile,CFile::modeCreate|CFile::modeReadWrite);
}
file.Write(U,200);
file.Close();
这是我的程序,可是保存后用记事本打开123.txt全是乱码,用ultraedit打开的话是16进制的数据,的确它就是我想要的,可是无法保存出来 ,
为什么我用
file.Write(_T("123"),4);得到的东西就可以直接用txt记事本打开呢 ?
CString hexfile;
hexfile=_T("d:\\123.txt");
if(!file.Open (hexfile,CFile::modeReadWrite))
{
file.Open(hexfile,CFile::modeCreate|CFile::modeReadWrite);
}
file.Write(U,200);
file.Close();
这是我的程序,可是保存后用记事本打开123.txt全是乱码,用ultraedit打开的话是16进制的数据,的确它就是我想要的,可是无法保存出来 ,
为什么我用
file.Write(_T("123"),4);得到的东西就可以直接用txt记事本打开呢 ?
只要数据对就行了,word文档你用记事本打开也是乱码
所以file.Write(_T("123"),4);得到的东西就可以直接用txt记事本打开
如果你写入数值,则现实数值对应的字符,但一定要有对应的字符编码才可见
我主要是因为这个U是个图片数据,我想把它保存起来用matlab看看这个矩阵图片的效果 ,好像好麻烦啊
不知道有没有很好的办法 啊
你可以像下面的代码那样来转.CString strTemp;
CString strSave = "";
int iLen = 200;
for(int i=0;i<200;i++)//全部转成在TXT里可看到的ASCII字符
{
strTemp.Format("%x",U[i]);
strSave += strTemp;
}
hexfile=_T("d:\\123.txt");
if(!file.Open (hexfile,CFile::modeReadWrite))
{
file.Open(hexfile,CFile::modeCreate|CFile::modeReadWrite);
}
file.Write(strSave,strSave.GetLength());
file.Close();