文件读写

文件读写

文件分类
  • 按照编码方式:文本文件和二进制文件
  • 按照存储方式:顺序存储(读的时候按照顺序)和随机存储(读的时候可以定位的某一行)
使用的类
  • ifstream
  • ofstream
  • fstream
文件和流之间的交互
  • 无论是什么文件,都是按照字节的方式存储
  • 文件尾部有一个结束符号
操作步骤
大体步骤
  • 包含头文件<fstream>

  • 创造流对象:
    ifstream(读文件),ofstream(写文件) ,fstream(可读可写)

  • 打开文件(open方法)

  • 检查是否打开:is_open()方法,返回true或者false

  • 读写
    如果是写操作,和使用cout形式一样,为fout<<内容
    如果是读操作,和使用cin一样为fcin>>内容
    如果是读取字符,可以使用fcin.get(ch);如果写字符,使用fout.put(ch);
    总之,流对象进行读写操作和cin,cout基本相同

  • 关闭流资源

具体实现
  • 写文件的小例子
			 
                      ofstream  fout;
		      fout.open("test.txt",ios::out);//建立文件信息区	
		      if (! fout.is_open()){   cout<<"Cannot open output file\n,"; return 1;}
		      fout<<10<<"  "<<123.456<<"  "<<"This is a text file.\n";
		      fout.close();
		      return 0;         		


		      ofstream  fout;char filename[20];cin>>filename;
		      fout.open(filename,ios::out);//建立文件信息区	
		      if (! fout.is_open()){   cout<<"Cannot open output file\n,"; return 1;}
		      fout<<10<<"  "<<123.456<<"  "<<"This is a text file.\n";
		      fout.close();
		      return 0;

		
		  `   ofstream  fout;string filename;cin>>filename;
		      fout.open(filename.c_str(),ios::out);//建立文件信息区	
		      if (! fout.is_open()){   cout<<"Cannot open output file\n,"; return 1;}
		      fout<<10<<"  "<<123.456<<"  "<<"This is a text file.\n";
		      fout.close();
		      return 0;
  • 具体说明
    1、open方法的第一个参数代表文件的地址。可以直接写,如果使用变量,只能是字符数组,不能是字符串
    2、open函数的第二个参数有以下几种情况:
    iso::in
    如果文件不存在,打开失败;如果文件存在正常打开
    ios::out
    如果文件不存在,创建新文件;如果文件存在,打开并清空文件内容;如果路径不存在,打开失败
    ios::app
    如果文件不存在,创建新文件;如果文件存在,在文件末尾追加内容
    ios::ate
    如果文件不存在,创建文件;如果文件存在,打开文件并清空文件内容
    ios::trunc   = 0x10
    在读写前先将文件长度截断为0(默认)
    ios::binary  = 0x80 
    二进制格式文件
    3、检查是否打开使用is_open()方法
    4、流对象的构造函数:
    参数可以是文件的路径,这样就相当于打开了文件。然后检查是否打开可以采用判断流对象是否为空的方法
    5、一定要关闭流对象。
    因为我们在创建了流对象后,系统会建立一个通道,如果不关闭,会一直占用这个系统资源。
其他函数
  • abort()
    C 库函数 void abort(void) 中止程序执行,直接从调用的地方跳出
  • cerr
    cout
  • getline(流对象,变量)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值