首页 > 代码库 > 文件操作ofstream,open,close,ifstream,fin,按照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件

文件操作ofstream,open,close,ifstream,fin,按照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件



1.ofstream,open,close写入文件

#include<iostream>

#include<fstream>

 

usingnamespacestd;

 

//通过ofstream的方式实现写入文件 open,close

voidmain()

{

   ofstreamfout; //ofstream输出文件

   fout.open("E:\\1.txt");//打开文件

   fout <<"1234abcdef";//写入文件

   fout.close();

}

通过这些代码向文件1.txt中输入文件

2.ifstream,fin从文件中读取文件并打印输出到屏幕

#include<iostream>

#include<fstream>

 

usingnamespacestd;

 

//通过ifstream流读取文件,并将文件写入str

voidmain()

{

   ifstreamfin("E:\\1.txt");//创建读取文件的流

   charstr[50] = { 0 };

   fin >>str;//读取

   fin.close();

   cout <<str;

   cin.get();

}

运行结果是,输出:1234abcdef

3.按照行来读取数据

#include<iostream>

#include<fstream>

 

usingnamespacestd;

 

//按照行来读取

voidmain()

{

   //按照行来读取

   ifstreamfin("E:\\1.txt");

   //读取4行数据

   for (inti = 0;i < 4;i++)

   {

       charstr[50] = { 0 };

       fin.getline(str, 50);

       cout <<str <<endl;

   }

   fin.close();

   cin.get();

}

上面结果是输出4行。

4.fout文件输入

#include<iostream>

#include<fstream>

 

usingnamespacestd;

 

voidmain()

{

   ofstreamfout;//ofstream.输出文件

   fout.open("E:\\2.txt");//打开文件

   fout <<"锄禾日当午" << endl;//写入文件

   fout <<"地雷买下土" << endl;//写入文件

   fout <<"谭胜来跳舞" << endl;//写入文件

   fout <<"炸成250" << endl;//写入文件

   fout.close();

}

5. fstreamios::in | ios::out表示有读写的权限,通过fstream.getline(写入位置,写入长度)

案例(写入文件又读取文件的方式):

#include<iostream>

#include<fstream>

 

usingnamespacestd;

 

//通过fstream的方式实现文件读写,要注意的是这种方式要求文件已经存在

voidmain()

{

   //ios::in | ios::out表示有读写的权限

   fstreamfio("E:\\3.txt",ios::in | ios::out);

   fio <<"锄禾日当午" << endl;//写入文件

   fio <<"地雷买下土" << endl;//写入文件

   fio <<"谭胜来跳舞" << endl;//写入文件

   fio <<"炸成250" << endl;//写入文件

   fio.close();

   {

       fstreamfio("E:\\3.txt",ios::in | ios::out);

       for (inti = 0;i < 4;i++)

       {

           charstr[50] = { 0 };

           fio.getline(str, 50);

           cout <<str <<endl;

       }

       fio.close();

   }

   cin.get();

}

6.fio.seekg();随机文件指针,将文件指针移动到指定位置开始读写文件

案例如下:

#include<iostream>

#include<fstream>

 

usingnamespacestd;

 

//通过fstream的方式实现文件读写,要注意的是这种方式要求文件已经存在

voidmain()

{

   //ios::in | ios::out表示有读写的权限

   fstreamfio("E:\\3.txt",ios::in | ios::out);

   fio <<"锄禾日当午" << endl;//写入文件

   fio <<"地雷买下土" << endl;//写入文件

   fio <<"谭胜来跳舞" << endl;//写入文件

   fio <<"炸成250" << endl;//写入文件

   fio.close();

   fio.seekg(ios::beg);//文件指针,从文件开头开始执行

   {

       fstreamfio("E:\\3.txt",ios::in | ios::out);

       for (inti = 0;i < 4;i++)

       {

           charstr[50] = { 0 };

           fio.getline(str, 50);

           cout <<str <<endl;

       }

       fio.close();

   }

   cin.get();

}

7.文件写入和文件读写

#include<iostream>

#include<fstream>

 

usingnamespacestd;

 

voidmain()

{

   ofstreamfout;

   fout.open("E:\\4.txt");

   //将内容打印到文件

   fout <<"ABC" <<" " << 123 <<" " <<‘ch‘ <<endl;

   fout.close();

   ifstreamfin("E:\\4.txt");

   charstr[10] = { 0 };//读取字符串

   intnum = 0;

   charch =‘\0‘;

   fin >>str >>num >>ch;

   std::cout << str <<"\n" <<num <<"\n" <<ch;

 

   std::cin.get();

}

运行结果:

ABC

123

8.文件拷贝

#include<iostream>

#include<fstream>

 

usingnamespacestd;

 

//读写一个字符

//文本与二进制存储

voidmain()

{

   ifstreamfin("E:\\4.txt");//创建读取文件的流

   ofstreamfout("E:\\40.txt");

   if (!fin || !fout)

   {

       std::cout << "文件打开失败";

       return;

   }

   std::cout << "文件拷贝开始\n";

   charch = 0;

   //引用的方法读取到一个字符

   while (fout && fin.get(ch))

   {

       fout.put(ch);//写入一个字节

   }

   fin.close();

   fout.close();

 

   std::cout << "文件拷贝完成";

   cin.get();

}

运行结果:生成了一个40.txt,里面存储的是4.txt中的内容

9.文件追加ios:app

#include<iostream>

#include<fstream>

 

usingnamespacestd;

 

voidmain()

{

   ofstreamfout("E:\\40.txt",ios::app);//追加

   fout <<"天下英雄,谭胜第一\n";

   fout.close();

 

   cin.get();

}

发现在40.txt这个文件的最后面多了:天下英雄,谭胜第一

 

 

文件操作ofstream,open,close,ifstream,fin,按照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件