首页 > 代码库 > 文件操作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这个文件的最后面多了:天下英雄,谭胜第一
文件操作ofstream,open,close,ifstream,fin,按照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件