文件操作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. fstream,ios::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这个文件的最后面多了:天下英雄,谭胜第一