ofstream fout(pDoc->sFileName);
for(int j=0;j<8;j++)
for(int i=0;i<pDoc->plulist[j].size();i++)
{
CString str;
str.Format(_T%-20s"),pDoc->plulist[j][i].name); fout<<str<<endl;//此处显示字符正常!
}
但是查看文件却是:
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
for(int j=0;j<8;j++)
for(int i=0;i<pDoc->plulist[j].size();i++)
{
CString str;
str.Format(_T%-20s"),pDoc->plulist[j][i].name); fout<<str<<endl;//此处显示字符正常!
}
但是查看文件却是:
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
0111B000
ofstream 是不支持<<写入CString类型的
你得在输出的时候强制转化类型 const char*或者const wchar_t*
ofstream fout(pDoc-> sFileName);
for(int j=0;j <8;j++)
for(int i=0;i <pDoc-> plulist[j].size();i++)
{
CStringA str;
wchar_t* pwszUnicode = pDoc->plulist[j][i].name.GetBuffer(pDoc->plulist[j][i].name.GetLength());
int iSize;
char* pszMultiByte; iSize = WideCharToMultiByte(CP_ACP, 0, pwszUnicode, -1, NULL, 0, NULL, NULL);
pszMultiByte = (char*)malloc((iSize+1)/**sizeof(char)*/);
WideCharToMultiByte(CP_ACP, 0, pwszUnicode, -1, pszMultiByte, iSize, NULL, NULL);str.Format("%-20s"),pszMultiByte); fout < <str < <endl;//
}