ios::out|ios::app
单独以ios::out打开的文件会将文件内容清空,ios::out|ios::app这个组合还会将上一次文件内容清空么?我试了一下,
void CFScoreDlg::OnAddFScore()
{
// TODO: Add your control notification handler code here
CListBox* pDictDataListBox = (CListBox*)GetDlgItem( IDC_LIST3 );
CListBox* pFdeallogListBox = (CListBox*)GetDlgItem( IDC_LIST1 );
int index = pDictDataListBox->GetCurSel();
int index1 = m_DataType.GetCurSel();
m_DataType.GetLBText(index1,str);
char FileName[200];
sprintf( FileName, "%sOutText\\FScore.txt", GetAppPath() );
ofstream of( FileName, ios::out|ios::app );
if( index != -1)
{
if(strcmp(str,"变位的开关")==0)
{
DATADICT* pDATADICT = (DATADICT *)(pDictDataListBox->GetItemData( index ));
pDictDataListBox->DeleteString( index);
index = pFdeallogListBox->AddString( pDATADICT->NameExp3 );
of << pDATADICT->NameExp3 << endl;
pFdeallogListBox->SetItemData( index, (DWORD)pDATADICT);
}
if(strcmp(str,"失压的工作母线")==0)
{
PTTYPE* PT=(PTTYPE *)(pDictDataListBox->GetItemData( index ));
pDictDataListBox->DeleteString( index);
index = pFdeallogListBox->AddString( PT->PTName );
of << PT->PTName << endl;
pFdeallogListBox->SetItemData( index, (DWORD)PT);
}
if(strcmp(str,"电流、有功、无功指示为0的间隔")==0)
{
MEASURE* TT=(MEASURE *)(pDictDataListBox->GetItemData( index ));
pDictDataListBox->DeleteString( index);
index = pFdeallogListBox->AddString( TT->CTName );
of << TT->CTName << endl;
pFdeallogListBox->SetItemData( index, (DWORD)TT);
}
}
of.close();
}
FScore.txt中的内容每一次都是追加的方式写入的。难道是不清空以前的内容了么?甚是疑惑!