文件操作

1,头文件:  <fstream>

2,定义对象并打开文件:

ifstream fin;
ofstream fout;

fin.open(file-name,model);

fout.open(file-name,model);

3,打开模式:

in : 读

out : 写(从文件开始头开始写)

app : 追加

ate : 打开文件后定位到文件尾

trunc : 打开并清空文件

binary : 以二进制模式进行IO操作

4,字符读取函数: 提取运算符  >>  .   可完成字符转换工作.

obj>>变量;

1),get和put函数:

char ch;

while(obj-in.get(ch))

        obj-out.put(ch);

2)getline函数:允许从输入流读取多个文件,可指定输入终止字符(默认是换行符),在读取完毕后,会删除该终止符.

    有以下三个版本:

        getline(char *,int ,char='/n');

        getline(unsigned char *,int,char='/n');

        getline(signed char *,int,char='/n');

3),read函数:在指定长度,文件结束,遇到文件结束标记字符时,读取操作结束.

          read(unsigned char *,int);

          read(signed char *,int);

5,文件写函数:  插入运算符  <<  .   可完成字符转换工作. 

obj<<变量;

1),put函数:  单个字符

        put(char _c);

        put(signed char _c);

2),write函数:

       write(const unsigned char *_s,int _n)

       write(const signed char *_s,int _n);

5,文件类

打开文件并追加信息:
	ofstream fout;
	fout.open("a",ofstream::app);    //多个打开模式用 | 分开

write和read函数:

read函数:

#include <iostream> 
  
  
   
   #include <string>
   
     
    
    
     
     
using namespace std;


     
     struct Stu 
{
	
     
     char name[10];
	
     
     int num;
	
     
     float score;
};

     
     int main()
{
	Stu player[3];
	ifstream fin;
	fin.
     
     open("
     
     a.txt");
	
     
     for (
     
     int i=0;i!=3;++i)
	{
		fin.
     
     read((
     
     char *)&player[i],
     
     sizeof(player[i]));
	}

	
     
     for (
     
     int i=0;i!=3;++i)
	{
		cout<
     
     
      
      <
      
      
       
       <
       
       
         < 
        
          < 
         
           < 
           
           return 0; } 
           
          
         
       
      
      
     
     
    
    
   
   
  
  

 

writer函数:

#include <iostream> 
   
   
    
    
#include  <string>
    
    
     
     
using namespace std;


     
     struct Stu 
{
	
     
     char name[10];
	
     
     int num;
	
     
     float score;
};

     
     int main()
{
	Stu player[3]={{"
     
     Li",5,33},{"
     
     Wang",6,22},{"
     
     Zhang",1,55}};
	ofstream fout;
	fout.
     
     open("
     
     a.txt",ofstream::app|ofstream::binary);
	
     
     if (!fout)
	{
		cout<<"
     
     Open file error!"<
     
     
      
      return 1;
	}
	
      
      for (
      
      int i=0;i!=3;++i)	
      
      //fout.write((char *)&player,sizeof(player));
	{
		fout.
      
      write((
      
      char *)&player[i],
      
      sizeof(player[i]));
	}
	fout.
      
      close();
	
      
      return 0;
}
     
     
    
    
   
   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值