1.ofstream,open,close 写入文件
#include<iostream>
#include<fstream>
using namespace std;
//通过ofstream的方式实现写入文件 open,close
void main()
{
ofstream fout; //ofstream输出文件
fout.open("E:\\1.txt");//打开文件
fout << "1234abcdef";//写入文件
fout.close();
}
通过这些代码向文件1.txt中输入文件
2.ifstream,fin 从文件中读取文件并打印输出到屏幕
#include<iostream>
#include<fstream>
using namespace std;
//通过ifstream流读取文件,并将文件写入str中
void main()
{
ifstream fin("E:\\1.txt");//创建读取文件的流
char str[50] = { 0 };
fin >> str;//读取
fin.close();
cout << str;
cin.get();
}
运行结果是,输出:1234abcdef
3.按照行来读取数据
#include<iostream>
#include<fstream>
using namespace std;
//按照行来读取
void main()
{
//按照行来读取
ifstream fin("E:\\1.txt");
//读取4行数据
for (int i = 0; i < 4;i++)
{
char str[50] = { 0 };
fin.getline(str, 50);
cout << str << endl;
}
fin.close();
cin.get();
}
上面结果是输出4行。
4.fout文件输入
#include<iostream>
#include<fstream>
using namespace std;
void main()
{
ofstream fout;//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>
using namespace std;
//通过fstream的方式实现文件读写,要注意的是这种方式要求文件已经存在
void main()
{
//ios::in | ios::out表示有读写的权限
fstream fio("E:\\3.txt", ios::in | ios::out);
fio << "锄禾日当午" << endl;//写入文件
fio << "地雷买下土" << endl;//写入文件
fio << "谭胜来跳舞" << endl;//写入文件
fio << "炸成250" << endl;//写入文件
fio.close();
{
fstream fio("E:\\3.txt", ios::in | ios::out);
for (int i = 0; i < 4; i++)
{
char str[50] = { 0 };
fio.getline(str, 50);
cout << str << endl;
}
fio.close();
}
cin.get();
}
6.fio.seekg();随机文件指针,将文件指针移动到指定位置开始读写文件
案例如下:
#include<iostream>
#include<fstream>
using namespace std;
//通过fstream的方式实现文件读写,要注意的是这种方式要求文件已经存在
void main()
{
//ios::in | ios::out表示有读写的权限
fstream fio("E:\\3.txt", ios::in | ios::out);
fio << "锄禾日当午" << endl;//写入文件
fio << "地雷买下土" << endl;//写入文件
fio << "谭胜来跳舞" << endl;//写入文件
fio << "炸成250" << endl;//写入文件
fio.close();
fio.seekg(ios::beg); //文件指针,从文件开头开始执行
{
fstream fio("E:\\3.txt", ios::in | ios::out);
for (int i = 0; i < 4; i++)
{
char str[50] = { 0 };
fio.getline(str, 50);
cout << str << endl;
}
fio.close();
}
cin.get();
}
7.文件写入和文件读写
#include<iostream>
#include<fstream>
using namespace std;
void main()
{
ofstream fout;
fout.open("E:\\4.txt");
//将内容打印到文件
fout << "ABC" << " " << 123 << " " << 'ch' << endl;
fout.close();
ifstream fin("E:\\4.txt");
char str[10] = { 0 };//读取字符串
int num = 0;
char ch = '\0';
fin >> str >> num >> ch;
std::cout << str << "\n" << num << "\n" << ch;
std::cin.get();
}
运行结果:
ABC
123
8.文件拷贝
#include<iostream>
#include<fstream>
using namespace std;
//读写一个字符
//文本与二进制存储
void main()
{
ifstream fin("E:\\4.txt");//创建读取文件的流
ofstream fout("E:\\40.txt");
if (!fin || !fout)
{
std::cout << "文件打开失败";
return;
}
std::cout << "文件拷贝开始\n";
char ch = 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>
using namespace std;
void main()
{
ofstream fout("E:\\40.txt", ios::app);//追加
fout << "天下英雄,谭胜第一\n";
fout.close();
cin.get();
}
发现在40.txt这个文件的最后面多了:天下英雄,谭胜第一