读取filename文件的内容到wstring

本文介绍了一个用于将UTF-8编码的文件内容读取到WString变量中的C++函数。该函数首先将文件名转换为wchar_t*格式,然后使用_wfopen打开文件,并设置正确的字符集为UTF-8。通过fgetws逐行读取文件内容并累加到最终的wstring变量中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    //读取filename文件的内容到wstring
    bool ReadFileTowstring(const char *szfile, wstring &content)
    {
        CString filename(szfile);
        //存储读取的wstring
        content.clear();
        wchar_t linex[4096];

        FILE * file;
        //格式化filename为wchar_t *
        wchar_t *wc = new wchar_t[filename.GetLength()];
        wchar_t *wmode = wc;
        swprintf(wc,L"%S",filename);  

        //读取utf-8编码的文件
        file=_wfopen(wc,L"rt+,ccs=UTF-8");      
        locale loc("");
        wcout.imbue(loc);
        //while (!feof(file))
        while(fgetws(linex,4096,file))
        {
            //fgetws(linex,4096,file);
            //wstring linew = linex;
            //content+=linew;
            content += wstring(linex);
        }
        fclose(file);
        return true;
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值