做图像处理方面的编程,想把数组中的数据写入txt文件中进行查看,用到时如下代码:
CString filename;
CFile myfile(_T("imageGrayinfo.txt"),CFile::modeWrite|CFile::modeCreate);
filename=myfile.GetFilePath();
CArchive ar1(&myfile,CArchive::store);
m=0;
for(int x=0;x<picWidth;x++)
{
for(int y=0;y<picHeight;y++)
{
filename.Format(_T(" %d"),imageGray[m++]);//数据存放在imageGray数组中,定义为imageGray = (BYTE*)malloc(sizeof(BYTE)*picWidth*picHeight);
ar1<<filename;
}
filename.Format(_T("\n"));
ar1<<filename;
}
myfile.Close();得到的txt文件中数组数据时正确的,但是会有一些奇怪的符号,如下
Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255
ǿ0ǿ0ǿ0ǿ0Ͽ255ǿ0ǿ0Ͽ255ǿ0ǿ0ǿ0ǿ0ǿ0ǿ0ǿ0ǿ0ǿ0ǿ0Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255ǿ0ǿ
255与255之间、0与0之间的符号是什么?如何产生的?如何消除?
求解答
CString filename;
CFile myfile(_T("imageGrayinfo.txt"),CFile::modeWrite|CFile::modeCreate);
filename=myfile.GetFilePath();
CArchive ar1(&myfile,CArchive::store);
m=0;
for(int x=0;x<picWidth;x++)
{
for(int y=0;y<picHeight;y++)
{
filename.Format(_T(" %d"),imageGray[m++]);//数据存放在imageGray数组中,定义为imageGray = (BYTE*)malloc(sizeof(BYTE)*picWidth*picHeight);
ar1<<filename;
}
filename.Format(_T("\n"));
ar1<<filename;
}
myfile.Close();得到的txt文件中数组数据时正确的,但是会有一些奇怪的符号,如下
Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255
ǿ0ǿ0ǿ0ǿ0Ͽ255ǿ0ǿ0Ͽ255ǿ0ǿ0ǿ0ǿ0ǿ0ǿ0ǿ0ǿ0ǿ0ǿ0Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255Ͽ255ǿ0ǿ
255与255之间、0与0之间的符号是什么?如何产生的?如何消除?
求解答
解决方案 »
- 请教如何设置非模态窗口前后位置
- 利用hook获取桌面图标句柄遇到的问题
- 急救!江湖告急
- 学VC哪本书比较好,介绍一下
- socket 程序用tcp协议传输一个二进制文件时在win2000 server上丢包,谁遇到过?
- 如何做Ebcdic 码 与 ASCII码的转换
- 请问那位兄弟能用代码来设置pagefile.sys的?就象能实现WIN2000中的虚拟内存中的设置按钮中的功能.
- 我想用vc做一个毕业设计请大家给个最适合用vc做的题目???
- IWebBrowser2控件如何正确显示RSS.
- 请问如何使程序打开后自动缩为图标
- 老人们来谈谈你们当初怎么走过来的,吃了多少苦,奋斗到什么程度
- Debug Assertion Failed!!!!omg咋办啊???
linux 才 是 "\n"
ar1<<filename;
而不是仅仅写入CString里面的字符串。CString的序列化会先写入字符串长度,你用16进制查看器看一下就知道了。所以改成:
ar1<<(LPCTSTR)filename;
或:
ar1<<(LPCTSTR)filename.GetBuffer();
filename.ReleaseBuffer();
即可。
也可以用CStdioFile来打开文件,用CStdioFile::WriteString写入更方便,换行都不用你自己处理了,它自动处理
n=0;
for(i=0;i<Pic.GetWidth();i++)
{
for(j=0;j<Pic.GetHeight();j++)
{
if(imageResult[n] == 0)
fprintf(fp,"0");
else
fprintf(fp,"1");
n++;
}
fprintf(fp,"\n");
}
fclose(fp);但是乱码的问题依然没有解决,欢迎大家继续讨论。
int picWidth = 10;
int picHeight = 10;
BYTE* imageGray = (BYTE*)malloc(sizeof(BYTE)*picWidth*picHeight);
memset(imageGray, 0x01, sizeof(BYTE)*picWidth*picHeight);
CString filename;
CFile myfile(_T("imageGrayinfo.txt"),CFile::modeWrite|CFile::modeCreate);
filename =myfile.GetFilePath();
CArchive ar1(&myfile,CArchive::store);
int m=0;
for(int x=0;x<picWidth;x++)
{
for(int y=0;y<picHeight;y++)
{
filename.Format(_T(" %d"),imageGray[m++]);//数据存放在imageGray数组中,定义为imageGray = (BYTE*)malloc(sizeof(BYTE)*picWidth*picHeight);
ar1.Write(filename.GetBuffer(1), filename.GetLength());
}
filename.Format(_T("\r\n"));
ar1.Write(filename.GetBuffer(1), filename.GetLength());
}
ar1.Close();
myfile.Close();