用fopen_s()函数读取中文文件时会出现乱码。
1.在C++中可以使用:_wfopen_s()函数去打开中文文件。
函数: _wfopen_s(FILE**fp,L"文件路径",L"文件的使用方式")
2.使用:fgetws()函数去读取中文文件。
函数:fgetws(wchar_t*wstr,int len,FILE*fp);
参数:wchar_t*wstr // 是自己定义的一块数组
int len // 是数组读取的大小
FILE*fp //FILE类型的对象
3.使用:fputws()函数去写入中文文件。
函数:fputws(wchar_t*wstr,int len,FILE*fp);
参数:wchar_t*wstr //保存文字的数组
int len //数组所保存的文字的数量
FILE*fp //FILE类型的对象
实例:读取 D:\QQPCmgr\Desktop\新建文本文档.txt 文件,显示在窗口上,并将内容写入 D:\QQPCmgr\Desktop\新建文本文档2.txt 这个新的文件中。
int main()
{
FILE*fp;
FILE*fpwrite;
int open1=_wfopen_s(&fp,L"D:\\QQPCmgr\\Desktop\\新建文本文档.txt",L"r");
int open2=_wfopen_s(&fpwrite,L"D:\\QQPCmgr\\Desktop\\新建文本文档2.txt",L"a");
wchar_t linex[100];
if(fp==NULL||fpwrite==NULL)
{
cout<<"open failed!"<
}
while (!feof(fp))
{
fgetws(linex,100,fp);
wcout<
}
fclose(fp);
fclose(fpwrite);