C和C++读写txt操作方法,以及中文乱码问题的解决

方法一:FILE *f=fopen("文件名","打开方式")(c和c++都适用)

1、从txt中读取:

#include <stdio.h>
int main(){
	char a[5];
	char b;
	int c;

	//如下 
	FILE *f;
	f=fopen("悟解的文本文件.txt","r+");    //打开文件
	fscanf(f,"%s %c %d",&a,&b,&c);
	fclose(f);    //关闭文件

	//输出看看效果 
	printf("%s %c %d",a,b,c);
}

我们看看输出结果和原本txt中的内容:

1、向txt中写入:

#include <stdio.h>
int main(){
	char a[5]="ok";
	char b='!';
	int c=666;
	
	//如下 
	FILE *f;
	f=fopen("悟解的文本文件.txt","w+");    //打开文件
	fprintf(f,"%d %c %s\n",c,b,a);
	fclose(f);    //关闭文件
}

我们来看前后对比:(上边边为原始的,下边为运行之后的)

 接下来我们给出一些打开类型

r只读必须是已存在的文件
w只写无论文件是否存在,都新建一个文件
a添加向文本文件尾部添加数据
r+可读可写必须是已存在的文件
w+可读可写无论文件是否存在,都新建一个文件
a+可读可写向文本文件尾部添加数据

        补充:

        还有一些如:rb、rb+、wb、wb+、ab、ab+

        这些是基于二进制文件

 方法二:io流(适用与c++)

1、从txt中读取:

#include <bits/stdc++.h>
using namespace std;
int main(){
	char a[5];
	char b;
	int c;
	
	//如下 
	ifstream in("悟解的文本文件.txt");
	in>>c>>b>>a;
	in.close();
	
	//输出看看 
	cout<<c<<b<<a;
}

我们看看输出结果和原本txt中的内容:

 1、向txt中写入:

 

int main(){
	char a[6]="wujie";
	char b='?';
	int c=2022;
	
	//如下 
	ofstream out("悟解的文本文件.txt");
	out<< a <<" "<< b <<" "<< c;
	out.close();
	
}

我们来看前后对比:(上边边为原始的,下边为运行之后的)

中文乱码问题:

问题描述:

当我们读入文件中含有中文时:例子如下(txt编码格式为UTF-8

我们的程序如下:

int main(){
	string s;
	
	//如下 
	ifstream in("悟解的文本文件.txt");
	in>>s;
	in.close();
	
	//输出看看
	cout<<s; 
}

我们执行读取操作会得到的结果如下:

解决办法:将txt格式改为ANSI

操作如下:

另存为 ,在下方编码处选择ANSI,覆盖到原来的文件即可

以上为个人学习总结,当然还有很多方法

你悟解了吗?

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟解了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值