c++ txt文件的读写及乱码问题解决
在编程中,我们经常需要对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文件的读写及乱码问题解决相关推荐
- Java读取UTF-8格式txt文件第一行出现乱码及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法(转载)...
原文地址:http://blog.csdn.net/jackpk/article/details/5702964/ Java读取UTF-8的txt文件第一行出现乱码"?"及解决 t ...
- python不同数据的读入_python读写不同编码txt文件_python读写txt文件
python读写不同编码txt文件_python读写txt文件 以后整理规范 [python] view plaincopy import os import codecs filenames=os. ...
- Python小练习1:.txt文件常用读写操作
.txt文件常用读写操作 本文通过一个实例来介绍读写txt文件的各种常用操作,问题修改自coursera上南京大学的课程:用Python玩转数据. 直接进入正题,考虑下面为练习读写txt文件的各种操作 ...
- java读txt文件乱码_java读取txt文件时出现中文乱码怎么解决
java读取txt文件时出现中文乱码怎么解决 发布时间:2020-06-25 15:27:31 来源:亿速云 阅读:105 作者:Leah java读取txt文件时出现中文乱码怎么解决?针对这个问题, ...
- Python随笔:对 txt 文件进行读写,清除,删除操作
Python随笔:对 txt 文件进行读写,清除内容,删除操作 文章目录 Python随笔:对 txt 文件进行读写,清除内容,删除操作 1.文件读写 1.1 读写文件前打开文件的两个方法 1.2 写 ...
- vb.net 输出txt文件到手机避免乱码
@TOCvb.net 输出txt文件到手机避免乱码 代码往下看,初次使用CSDN的编辑器,感觉不错,还没熟悉 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的 ...
- python文件的模式,并进行csv,txt文件类型读写
1. 文件的访问模式: 首先看一下文件的访问方式 访问模式 说明 r 以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. w 打开一个文件只用于写入.如果该文件已存在则将其覆盖.如果该文 ...
- java中txt文件在线显示中文乱码问题
问题描述: 在用Java程序进行读写含中文的txt文件时,经常会出现读出或写入的内容会出现乱码. 解决原理: 原因就是系统的编码和程序的编码采用了不同的编码格式.通常,假如自己不修改的话,window ...
- JAVA编程TXT文件_java读写txt文件的方法
java读写txt文件的方法 发布时间:2020-06-26 15:54:02 来源:亿速云 阅读:111 作者:Leah 本篇文章为大家展示了java读写txt文件的方法,代码简明扼要并且容易理解, ...
最新文章
- 判断手机是否弹出键盘,改变了手机页面高度,对应inputStatus的状态改变相关控件的大小和位置
- Centos运行级别和开机过程
- BZOJ 3626: [LNOI2014]LCA
- 惠普微型计算机怎么样,垃圾佬的养成①日记之惠普HP 400G3 DM迷你小主机入手日记...
- html5 video标签不能播放视频,h5 video 视频不能正常播放
- 如何将 Pycharm 打造得更称手
- 企业网站之html,httpd概述
- 设备的分配与调度简单方案_连铸生产调度与动态重调度的优化与研究-3,炼钢技术(3)原创...
- 二值化图像是什么?图像如何二值化?
- linux内核实现片选跳变,《Linux内核设计与实现》读书笔记:进程调度
- 获得密钥_《哪吒》公映密钥延期一个月?关于“密钥延期”的全揭秘来了
- idea中的万能快捷键(alt + enter)
- 盘点14个因安全事故引咎辞职的高管领导
- Cannot resolve org.springframework.boot:spring-boot-starter-web:2.2.6.RELEAS
- Vue 2.0 实战之仿Eleme WebApp SPA(学习)
- linux+暂停运行,如何暂停和继续运行Linux程序
- 使用unity制作的一款生存类游戏demo(一)
- Readme文件写法
- qt类似电视盒子的通过方向键切换焦点的实现方法
- TMC7300-LA:微型直流有刷电机驱动