我想要让程序使用CFile读取文件,结果读取出来的完全不正确
我的代码是:
void CTextEditDlg::OnFileOpen()
{
// TODO: 在此添加命令处理程序代码
if (SaveFile()) {
CFile file;
char szFilter[] = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||";
int iRead;
char buf[BUFSIZ];
CFileDialog openDlg(true, CString(".txt"), 0,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, CString(szFilter));
if (openDlg.DoModal() == IDOK)
{
m_sFileName = openDlg.GetPathName();
file.Open(m_sFileName, CFile::modeRead);
int file_len = file.GetLength();
char* pBuf = new char[file_len + 1];
file.SeekToBegin();
file.Read(pBuf, file_len);
pBuf[file_len] = 0;
m_sEditTxt.Append(CA2W(pBuf));
delete[]pBuf;
file.Close();
UpdateData(FALSE);
m_bChanged = FALSE;
}
}
}
如果使用记事本在文件里输入“123948”,结果他显示了“?“