在编程中,我们经常需要对txt文件进行读写操作,有时候由于编解码问题,txt读写会出现乱码问题。下面介绍一种基于ofstream和ifstream的txt文件读写方法,并介绍txt文件读写的乱码解决方案。

1.txt文件写入

#include <fstream>
#include <iostream>
using namespace std;int main()
{   ofstream outfile("1.txt",ios::ate);   //打开文件,设置写入方式为覆盖写入if(!outfile){cout<<"txt文件打开失败!"<<endl;exit(0);}outfile<<"写入txt文件示例.\n";outfile<<"成功写入.\n";outfile.close();
}

txt里面的写入内容如下:

成功写入。

2.txt文件读出

对上面读入内容的txt进行读出操作,代码如下:

#include <fstream>
#include <iostream>
using namespace std;int main()
{   char txt[100];ifstream infile;infile.open("1.txt");if(!infile.is_open()){cout<<"txt文件打开失败"<<endl;exit(0);}while(!infile.eof()){       infile.getline(txt,100);cout<<txt<<endl;}infile.close();getchar();
}

读出结果为:

读出结果正确。

3.txt读写乱码问题

有时候由于txt文件编码问题的不同,会导致读写的时候出现乱码,通常的txt编码方式有:

上面默认的编码方式为ANSI,如果我们现在将它另存为1.txt,但编码格式变为UTF-8,那么读出结果会变成:

发现结果完全错误,这时候我们需要编解码转换,具体代码如下:

#include <fstream>
#include <iostream>
#include <Windows.h>
#include <string>
using namespace std;string UTF8ToGB(const char* str)
{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()
{   char txt[100];string msg;ifstream infile;infile.open("2.txt");if(!infile.is_open()){cout<<""<<endl;exit(0);}while(!infile.eof()){       infile.getline(txt,100);msg=UTF8ToGB(txt);cout<<msg<<endl;}infile.close();getchar();
}

将读出结果进行上述转换,发现结果又正确了。

c++ txt文件的读写及乱码问题解决相关推荐

  1. Java读取UTF-8格式txt文件第一行出现乱码及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法(转载)...

    原文地址:http://blog.csdn.net/jackpk/article/details/5702964/ Java读取UTF-8的txt文件第一行出现乱码"?"及解决 t ...

  2. python不同数据的读入_python读写不同编码txt文件_python读写txt文件

    python读写不同编码txt文件_python读写txt文件 以后整理规范 [python] view plaincopy import os import codecs filenames=os. ...

  3. Python小练习1:.txt文件常用读写操作

    .txt文件常用读写操作 本文通过一个实例来介绍读写txt文件的各种常用操作,问题修改自coursera上南京大学的课程:用Python玩转数据. 直接进入正题,考虑下面为练习读写txt文件的各种操作 ...

  4. java读txt文件乱码_java读取txt文件时出现中文乱码怎么解决

    java读取txt文件时出现中文乱码怎么解决 发布时间:2020-06-25 15:27:31 来源:亿速云 阅读:105 作者:Leah java读取txt文件时出现中文乱码怎么解决?针对这个问题, ...

  5. Python随笔:对 txt 文件进行读写,清除,删除操作

    Python随笔:对 txt 文件进行读写,清除内容,删除操作 文章目录 Python随笔:对 txt 文件进行读写,清除内容,删除操作 1.文件读写 1.1 读写文件前打开文件的两个方法 1.2 写 ...

  6. vb.net 输出txt文件到手机避免乱码

    @TOCvb.net 输出txt文件到手机避免乱码 代码往下看,初次使用CSDN的编辑器,感觉不错,还没熟悉 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的 ...

  7. python文件的模式,并进行csv,txt文件类型读写

    1. 文件的访问模式: 首先看一下文件的访问方式 访问模式 说明 r 以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. w 打开一个文件只用于写入.如果该文件已存在则将其覆盖.如果该文 ...

  8. java中txt文件在线显示中文乱码问题

    问题描述: 在用Java程序进行读写含中文的txt文件时,经常会出现读出或写入的内容会出现乱码. 解决原理: 原因就是系统的编码和程序的编码采用了不同的编码格式.通常,假如自己不修改的话,window ...

  9. JAVA编程TXT文件_java读写txt文件的方法

    java读写txt文件的方法 发布时间:2020-06-26 15:54:02 来源:亿速云 阅读:111 作者:Leah 本篇文章为大家展示了java读写txt文件的方法,代码简明扼要并且容易理解, ...

最新文章

  1. 判断手机是否弹出键盘,改变了手机页面高度,对应inputStatus的状态改变相关控件的大小和位置
  2. Centos运行级别和开机过程
  3. BZOJ 3626: [LNOI2014]LCA
  4. 惠普微型计算机怎么样,垃圾佬的养成①日记之惠普HP 400G3 DM迷你小主机入手日记...
  5. html5 video标签不能播放视频,h5 video 视频不能正常播放
  6. 如何将 Pycharm 打造得更称手
  7. 企业网站之html,httpd概述
  8. 设备的分配与调度简单方案_连铸生产调度与动态重调度的优化与研究-3,炼钢技术(3)原创...
  9. 二值化图像是什么?图像如何二值化?
  10. linux内核实现片选跳变,《Linux内核设计与实现》读书笔记:进程调度
  11. 获得密钥_《哪吒》公映密钥延期一个月?关于“密钥延期”的全揭秘来了
  12. idea中的万能快捷键(alt + enter)
  13. 盘点14个因安全事故引咎辞职的高管领导
  14. Cannot resolve org.springframework.boot:spring-boot-starter-web:2.2.6.RELEAS
  15. Vue 2.0 实战之仿Eleme WebApp SPA(学习)
  16. linux+暂停运行,如何暂停和继续运行Linux程序
  17. 使用unity制作的一款生存类游戏demo(一)
  18. Readme文件写法
  19. qt类似电视盒子的通过方向键切换焦点的实现方法
  20. TMC7300-LA:微型直流有刷电机驱动

热门文章

  1. 用友U8查询采购订单明细可付款申请金额
  2. 业余时间决定你的人生
  3. 哪种类型的光隔离器适合您的信号?
  4. 【模拟IC】电荷泵基础1(On-chip High-Voltage Generator Design)
  5. 6-5 大于m的最小素数 (10分)
  6. 湖南大学计算机专业女生宿舍,湖南大学男生女生宿舍内部图片环境怎么样及条件...
  7. python 公司年会抽奖_python实现年会抽奖程序
  8. XCode的构造iOS应用程序是如何启动的
  9. flash特效原理:标签云
  10. Flash 特效原理:震动效果