国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

VC下實現fopen支持中文的方法

2020-01-26 15:29:45
字體:
來源:轉載
供稿:網友

VC的fopen函數第一個參數是const char*,一旦遇到中文文件名就難以應付了,如果中文是UTF8編碼的話,我們還可以用下列代碼將其轉換為UNICODE,然后用_wfopen函數打開文件。

代碼如下:

bool UTF8ToUnicode(const char* UTF8, wchar_t* strUnicode){ DWORD dwUnicodeLen;    //轉換后Unicode的長度 TCHAR *pwText;      //保存Unicode的指針// wchar_t* strUnicode;    //返回值 //獲得轉換后的長度,并分配內存 dwUnicodeLen = MultiByteToWideChar(CP_UTF8,0,UTF8,-1,NULL,0); pwText = new TCHAR[dwUnicodeLen]; if (!pwText) { return false; } //轉為Unicode MultiByteToWideChar(CP_UTF8,0,UTF8,-1,pwText,dwUnicodeLen); //轉為CString wcscpy(strUnicode, pwText); //清除內存 delete []pwText; return true;}

這個函數的用法如下:

wchar_t strUnicode[260];UTF8ToUnicode(streamName, strUnicode);FILE* fid = _wfopen(strUnicode, L"rb");// FILE* fid = fopen(streamName, "rb");//此為原來的方法,遇到中文不能正確打開

上述函數仍有不夠完善之處,如參數strUnicode的長度不能靈活設置,讀者可根據自身需求進一步加以完善!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 安义县| 汝阳县| 红河县| 康乐县| 会东县| 正宁县| 遂溪县| 南京市| 德昌县| 金乡县| 堆龙德庆县| 长兴县| 佛山市| 岐山县| 南康市| 海门市| 双城市| 财经| 宕昌县| 金华市| 江安县| 孟津县| 余庆县| 辽源市| 建水县| 长沙县| 申扎县| 古田县| 丹阳市| 武强县| 牡丹江市| 玉门市| 镶黄旗| 乳源| 醴陵市| 新源县| 常德市| 手游| 定州市| 永嘉县| 响水县|