何能正确的一行一行的读取unicode格式的txt文件的内容? 我的问题是,如何能正确的一行一行的读取unicode格式的txt文件的内容?我的目的是一次一行的读取unicode的txt文件用cstdiofile读取以后,显示出来的是乱码请问如何能正确读到每一行的内容?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最好用CArchive来读取一行文件,然后用WCHAR_t的变量两个byte一读就可以了。 发送者 cheng_young 发送时间 2003-7-24 17:26:29 删除 回复 内容 参考CStdioFile的实现, 将_fgetts改为fgetws for (;;) { lpszResult = _fgetts(lpsz, nMaxSize+1, m_pStream); rString.ReleaseBuffer(); // handle error/eof case if (lpszResult == NULL && !feof(m_pStream)) { clearerr(m_pStream); AfxThrowFileException(CFileException::generic, _doserrno, m_strFileName); } // if string is read completely or EOF if (lpszResult == NULL ¦ ¦ (nLen = lstrlen(lpsz)) < nMaxSize ¦ ¦ lpsz[nLen-1] == '\n') break; nLen = rString.GetLength(); lpsz = rString.GetBuffer(nMaxSize + nLen) + nLen; } 编号: 34 发送者 cheng_young 发送时间 2003-7-24 11:13:14 删除 回复 内容 CFile file;file.Open("c:\\test.txt", CFile::modeReadWrite);DWORD len = file.GetLength();char *buf = new char[len+2];file.Read(buf, len);buf[len] = 0;buf[len+1] = 0;file.Close();wchar_t *wch = (wchar_t *)buf;if (wch[0] == 0xFEFF) wch++;len = WideCharToMultiByte(CP_ACP, 0, wch, -1, NULL, 0, NULL, NULL);char *pBuf = new char[len];WideCharToMultiByte(CP_ACP, 0, wch, -1, pBuf, len, NULL, NULL);MessageBox(pBuf);delete []pBuf;delete []buf; 怎样用VC读取网络文件 sendmessage不起作用 CAsyncSocket类OnConnect()与Connect()的问题 关于拦截WM_PAINT消息??? 请问在哪里可以找到VC关于PPT的API呀 用Jmail组件发送邮件总是失败!!为什么???????????? 想做个浏览日志的工具软件,大家给点建议吧 如何做一个链表类?具体请进。 急! 如何通过对象实例指针获得对象的结构?欢迎讨论! netmeeting SDK在win2000 sp3下的问题 狂散100分:MSDN和VC的冲突——绝望中,高手帮忙!!!
内容 参考CStdioFile的实现, 将_fgetts改为fgetws
for (;;)
{
lpszResult = _fgetts(lpsz, nMaxSize+1, m_pStream);
rString.ReleaseBuffer(); // handle error/eof case
if (lpszResult == NULL && !feof(m_pStream))
{
clearerr(m_pStream);
AfxThrowFileException(CFileException::generic, _doserrno,
m_strFileName);
} // if string is read completely or EOF
if (lpszResult == NULL ¦ ¦
(nLen = lstrlen(lpsz)) < nMaxSize ¦ ¦
lpsz[nLen-1] == '\n')
break; nLen = rString.GetLength();
lpsz = rString.GetBuffer(nMaxSize + nLen) + nLen;
}
编号: 34 发送者 cheng_young 发送时间 2003-7-24 11:13:14 删除 回复
内容 CFile file;
file.Open("c:\\test.txt", CFile::modeReadWrite);
DWORD len = file.GetLength();
char *buf = new char[len+2];
file.Read(buf, len);
buf[len] = 0;
buf[len+1] = 0;
file.Close();wchar_t *wch = (wchar_t *)buf;
if (wch[0] == 0xFEFF)
wch++;len = WideCharToMultiByte(CP_ACP, 0, wch, -1, NULL, 0, NULL, NULL);
char *pBuf = new char[len];
WideCharToMultiByte(CP_ACP, 0, wch, -1, pBuf, len, NULL, NULL);
MessageBox(pBuf);delete []pBuf;
delete []buf;