16,471
社区成员
发帖
与我相关
我的任务
分享
void CcDlg::OnBnClickedOk()
{
CString str;
CStdioFile f( L"e:\\temp\\11.txt", CFile::modeRead );
f.ReadString( str );
swscanf_s( str, L"%i %i %i", &m_n11, &m_n12, &m_n13 );
f.ReadString( str );
swscanf_s( str, L"%i %i %i", &m_n21, &m_n22, &m_n23 );
f.ReadString( str );
swscanf_s( str, L"%i %i %i", &m_n31, &m_n32, &m_n33 );
f.Close();
UpdateData(FALSE);
}
m_nxx是对应的编辑框值变量,整形,其它数据类型也可以。
“不能CString,char格式转换” 应该是字符集的问题吧,如果是unicode字符集,把sscanf换成swscanf_s,字符串前面加L,应该就好了。
以上程序VS2010测试通过。
try
{
CFile file(_T("F:\\11.txt"), CFile::modeRead);
DWORD dwSize = (DWORD)file.GetLength();
char* pBuf = new char[dwSize + 1];
memset(pBuf, 0, sizeof(char) * (dwSize + 1));
file.Read(pBuf, dwSize);
CString strText(pBuf);
int curPos = 0;
int nIndex = 0;
LPCTSTR lpszToken = _T(" \r\n");
CString strToken(_T(""));
while (_T("") != (strToken = strText.Tokenize(lpszToken, curPos)))
{
AfxMessageBox(strToken);
SetDlgItemText(IDC_EDIT1 + nIndex, strToken);
++nIndex;
}
file.Close();
if (NULL != pBuf)
{
delete pBuf;
pBuf = NULL;
}
}
catch (CException* e)
{
e->ReportError();
e->Delete();
}