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; }