c++ 对文件读写操作 fstream ofstream istream 的简单理解

c++ 我的 primer5 学习 专栏收录该内容
1 篇文章 0 订阅

ofstream 类,用来向文件写数据,写为什么不是 ifstream 而用ofstream呢?是因为一个缓冲区的概念,具体可以参详http://blog.csdn.net/hulifangjiayou/article/details/41969077的介绍,大体就是我们的数据必须先存入缓冲区,要从缓冲区输出到文件 ,形象点就是       文件 《———— 缓冲区 《————我们的数据 所以是从缓冲区 out 所以就是ofstream


ifstream 类 ,用来从文件读取数据到缓冲区


fstream 包括两者,但是可以用一些特殊的方法限制读写,我重点介绍 fstream 。。。。


无论是读写,我们都要open文件,open的格式是   a.open(filename,file_mode)     filename可以是直接的字符串也可是指向字符串的指针,file_mode 在primer第五版给出了六种  

in     只读方式

 out  写

app   每次写操作都直接定位到文件末尾

ate   不管怎样,只要打开文件就定位到文件末尾

trunc  截断文件

binary 以二进制打开



给出一段代码

string s;

	fstream my_w_r,other_file; //创建两个对象分别用来读和写

	my_w_r.open("can.txt", fstream::out | fstream::in);  //读取can.txt,以读写方式打开,但是注意,如果没有can.txt这个文件,这段语句不会创建它

	other_file.open("other.txt", fstream::out | fstream::in | fstream::app); //同上,但是注意,如果没有other.txt,这段语句会创建它,单独的in,out也会创
                                                                               //建,但是不支持同时有in,out ,猜测c++鼓励读写分开?
	if (my_w_r >> s)   //读取can.txt的内容并存入 s
	{
		if (s != "\n")     //没有遇到换行符
		{
			cout << s << endl;     //直接打印内容到屏幕上
			other_file << s << flush;     //将s的内容写入other.txt ,输入完成后马上刷新缓存区

		}
	}
	my_w_r.close();  //别忘了关闭文件!!

	other_file.close();//再次强调不要忘了关闭文件!!养成良好习惯,珍惜系统资源。。。。

  • 1
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值