TCHAR szFileName[MAX_PATH];
//取得exe文件全路径名
GetModuleFileName(NULL, szFileName, sizeof(szFileName));
TCHAR szDrive[_MAX_DRIVE], szDir[_MAX_DIR];
//从szFileName路径中分离出驱动盘符和路径
_splitpath(szFileName, szDrive, szDir, NULL, NULL);
//用szDrive, szDir和Param.txt合成Param.txt的全路径名
_makepath(szFileName, szDrive, szDir, _T("Paramfirst"), _T(".txt"));//从Param.txt文件中读取参数
CStdioFile ParamFile;
CString strOneLine;int j=0
if(ParamFile.Open(szFileName, CFile::modeWrite | CFile::modeCreate))
{
for(int i=0;i<100;i++) //实际的这个for循环要运行很长时间,也可能在for循环里已经死机了
{
strOneLine.Format("%d\n",j);
ParamFile.WriteString(strOneLine);
}
j++;
}
ParamFile.Close(); 上面那样写程序的话,如果我在for循环还没结束就关闭程序或者for循环里死机了,导致Paramfirst.txt文件没有一行数据
我用下面的方法,导致最后只有一行数据
for(int i=0;i<100;i++) //在实际环境下,这个循环要很久,所以我想一行一行实时输出数据
{
if(ParamFile.Open(szFileName, CFile::modeWrite | CFile::modeCreate))
{
strOneLine.Format("%d\n",j);
ParamFile.WriteString(strOneLine);
j++;
}
ParamFile.Close();
}我该怎样解决啊,有什么更好的办法吗?
//取得exe文件全路径名
GetModuleFileName(NULL, szFileName, sizeof(szFileName));
TCHAR szDrive[_MAX_DRIVE], szDir[_MAX_DIR];
//从szFileName路径中分离出驱动盘符和路径
_splitpath(szFileName, szDrive, szDir, NULL, NULL);
//用szDrive, szDir和Param.txt合成Param.txt的全路径名
_makepath(szFileName, szDrive, szDir, _T("Paramfirst"), _T(".txt"));//从Param.txt文件中读取参数
CStdioFile ParamFile;
CString strOneLine;int j=0
if(ParamFile.Open(szFileName, CFile::modeWrite | CFile::modeCreate))
{
for(int i=0;i<100;i++) //实际的这个for循环要运行很长时间,也可能在for循环里已经死机了
{
strOneLine.Format("%d\n",j);
ParamFile.WriteString(strOneLine);
}
j++;
}
ParamFile.Close(); 上面那样写程序的话,如果我在for循环还没结束就关闭程序或者for循环里死机了,导致Paramfirst.txt文件没有一行数据
我用下面的方法,导致最后只有一行数据
for(int i=0;i<100;i++) //在实际环境下,这个循环要很久,所以我想一行一行实时输出数据
{
if(ParamFile.Open(szFileName, CFile::modeWrite | CFile::modeCreate))
{
strOneLine.Format("%d\n",j);
ParamFile.WriteString(strOneLine);
j++;
}
ParamFile.Close();
}我该怎样解决啊,有什么更好的办法吗?
if(ParamFile.Open(szFileName, CFile::modeWrite | CFile::modeCreate))
{
for(int i=0;i<100;i++) //实际的这个for循环要运行很长时间,也可能在for循环里已经死机了
{
strOneLine.Format("%d\n",j);
ParamFile.WriteString(strOneLine);
ParamFile.Flush(); // Add
}
j++;
}
ParamFile.Close();