CFile file; if (file.Open(_T("./text.txt"), CFile::modeRead,NULL)) { wchar_t pBuf[150] = {0}; file.Read(pBuf, sizeof(pBuf)-2); MessageBox(pBuf); file.Close(); }
结果是乱码 方法二:使用CArchive C/C++ code CFile fRead; m_strContent=_T(""); if (!fRead.Open(m_strFilePath,CFile::modeRead)) { MessageBox(_T("文件打开出错!"),_T("警告"),MB_ICONERROR); return; } DWORD dwLength = (DWORD)fRead.GetLength(); CArchive ar(&fRead,CArchive::load,dw...
int iLen=file.GetLength();pBuf=new char[iLen+1];file.Read(pBuf,iLen);pBuf[iLen]=0;CString str1(pBuf); //CString str1=CA2W(pBuf,CP_UTF8); //Utf8格式文件用此方法 delete[] pBuf;file.Close();MessageBox(str1);
你的字符串是ANSI类型,也就是CHAR类型,转换成WCHAR就会乱码。 追问: 我的工程是UNICODE类型的,那咋整哩,读入时好像没有可以用cstring的啊 追答:用宏WCHAR* pw = A2W(char*),前面要加一句USES_CONVERSION;你搜下MSDN。这个就可以转换字符串了。 MFC要加个头文件#include <atlconv.h> 00分享举报您可能感兴趣...
写入Unicode文本时,要在文件头部加入Unicode文本标志0XFEFF。 #include <stdio.h> #ifndef _UNICODE #define _UNICODE //使用UNICODE编码 #endif #include <Afx.h> //为了使用CString类 const int UNICODE_TXT_FLG = 0xFEFF; //UNICODE文本标示 int main() ...
互联网 行业资料 政务民生 说明书 生活娱乐 搜试试 续费VIP 立即续费VIP 会员中心 VIP福利社 VIP免费专区 VIP专属特权 客户端 登录 百度文库 互联网 关于CFile试用Write写文件时出现乱码的解决办法©2022 Baidu |由 百度智能云 提供计算服务 | 使用百度前必读 | 文库协议 | 网站地图 | 百度营销 ...
1//读文件数据2voidCFileOperDlg::OnButtonRead()3{4//TODO: Add your control notification handler code here56CFile file;7CString FileName="data.txt";8charbuf[1000];//读1K9memset(buf,0,1000);//初始化内存,防止读出字符末尾出现乱码10try11{12if(!file.Open(FileName,CFile::modeRead))13{14...
2.文件读取 voidCMFCApplication1Dlg::Read() {CFile file; CString FileName="D:\\data.txt";shortintbuf[100];//读1Kmemset(buf,0,100*sizeof(shortint));//初始化内存,防止读出字符末尾出现乱码try{if(!file.Open(FileName, CFile::modeRead)) ...
FFFE字体,是UTF16-LE的BOM字头标记,其实从你write的乘以2看,应该程序本身就是UNICODE字符集了,那么读取的时候,直接使用TCHAR或者WCHAR数组来读取,再赋值给CString就可以了。如果以文本方式打开CFile,不用跳字头,如果不声明文本模式,跳过(也就是首先读取)一个TCHAR就可以了。