方法一:FILE *f=fopen(“文件名”,”打开方式”)(c和c++都适用)
1、从txt中读取:
#include 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 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 using namespace std;int main(){char a[5];char b;int c;//如下 ifstream in("悟解的文本文件.txt");in>>c>>b>>a;in.close();//输出看看 cout<<c<<b<
我们看看输出结果和原本txt中的内容:
1、向txt中写入:
int main(){char a[6]="wujie";char b='" />
我们来看前后对比:(上边边为原始的,下边为运行之后的)
中文乱码问题:
问题描述:
当我们读入文件中含有中文时:例子如下(txt编码格式为UTF-8)
我们的程序如下:
int main(){string s;//如下 ifstream in("悟解的文本文件.txt");in>>s;in.close();//输出看看cout<<s; }
我们执行读取操作会得到的结果如下:
解决办法:将txt格式改为ANSI
操作如下:
另存为,在下方编码处选择ANSI,覆盖到原来的文件即可
以上为个人学习总结,当然还有很多方法
你悟解了吗?