欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > window环境C++读取带中文的文档乱码问题

window环境C++读取带中文的文档乱码问题

2024/10/24 22:20:47 来源:https://blog.csdn.net/wj617906617/article/details/139601605  浏览:    关键词:window环境C++读取带中文的文档乱码问题

 参考:[C++]ifstream和getline获取中文乱码解决方案_getline 读入中文-CSDN博客

#include <iostream>
#include <fstream>
#include <string>
#include <windows.h>using namespace std;std::string UTF8ToGB(const char *str)
{std::string result;WCHAR *strSrc;LPSTR szRes;// 获得临时变量的大小int i = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0);strSrc = new WCHAR[i + 1];MultiByteToWideChar(CP_UTF8, 0, str, -1, strSrc, i);// 获得临时变量的大小i = WideCharToMultiByte(CP_ACP, 0, strSrc, -1, NULL, 0, NULL, NULL);szRes = new CHAR[i + 1];WideCharToMultiByte(CP_ACP, 0, strSrc, -1, szRes, i, NULL, NULL);result = szRes;delete[] strSrc;delete[] szRes;return result;
}int main()
{ifstream fin("grades.txt");std::string line;while (std::getline(fin, line)){std::string str = UTF8ToGB(line.c_str()).c_str();cout << str << endl;}// 关闭文件fin.close();return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com