list打印到txt中

cy306gogo 2012-05-01 11:49:53
打印到txt的代码是在csdn看到的,输出表头是我加的,,但是在加完表头后,就会报heap corruption detected,这个错误,大侠路过看看-----

CString strFileName;
CFileDialog m_ldFile(FALSE);
m_ldFile.m_ofn.lpstrFilter = "*.TXT ";
m_ldFile.m_ofn.lpstrDefExt = "TXT ";

if (m_ldFile.DoModal() == IDOK)
{
strFileName = m_ldFile.GetPathName(); //包括了路径和文件名
}

//创建文件
char* pszFileName = strFileName.GetBuffer(strFileName.GetLength());
CStdioFile myFile;
CFileException fileException;

if (!myFile.Open( pszFileName, CFile::modeCreate | CFile::modeWrite ), &fileException )
{
TRACE( "Can 't open file %s, error = %u\n ",
pszFileName, fileException.m_cause );
}

//文件中写入内容
CString list[]={ //这里,,是我加的
"学号","姓名","课程名","日期","节次","刷卡时间"};
int i = 0;
for(int i=0;i<6;i++)
{
if(i==5)
{
lstrcat(list[i].GetBuffer(list[i].GetLength()), "\n ");
}
else
{
lstrcat(list[i].GetBuffer(list[i].GetLength()), "\t ");

}
myFile.WriteString(list[i].GetBuffer(list[i].GetLength()));
} //到这里,加完后虽然写进文件,但是就会报错啊


int iColSum = 6; //List中的栏数
int iCount = m_list.GetItemCount();

for (int iItem = 0; iItem < iCount; iItem++)
for (int iCol = 0; iCol < iColSum; iCol++)
{
CString strTemp = m_list.GetItemText( iItem, iCol);

if (iCol == 5)
lstrcat(strTemp.GetBuffer(strTemp.GetLength()), "\n ");
else
lstrcat(strTemp.GetBuffer(strTemp.GetLength()), "\t");

myFile.WriteString(strTemp.GetBuffer(strTemp.GetLength()));

}




//是否立即查看该文件
if (MessageBox( "已保存,要查看吗 ", "完成 ", MB_YESNO) == IDYES)
{
ShellExecute(NULL,
"open ",
pszFileName,
NULL,
NULL,
SW_SHOWNORMAL);
}

//关闭文件
myFile.Close();
...全文
68 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cy306gogo 2012-05-01
  • 打赏
  • 举报
回复
已经好了,,谢谢cait_sith,也谢谢你。
hdg3707 2012-05-01
  • 打赏
  • 举报
回复
给你个例子,比你的简单
#include <fstream>
#include <iostream>
using namespace std;

ofstream OutFile("a.txt",ios::app|ios::out);
OutFile<<"电流\t"<<"电压\t"<<"温度\t"<<"时间"<<endl;
OutFile.Colse();

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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