1、文件打开
1)、打开方式:
<文件流类><文件流对象名>(<需要操作的文件名称>,<打开方式>)
文件流类: fstream、ifstream、ofstream
文件流对象名:需要在操作前先创建对应的对象
打开方式:
ios::in:只能读,不能写
ios::out:只能写,不能读
ios::app:以追加的方式打开文件,打开后文件指针指向文件尾部,可以写
ios::ate:打开已存在的文件,指向文件尾部,可读可写
ios::binary:以二进制方式打开文件
ios::trunc:打开文件进行写操作,如果文件已存在,清除文件中的数据
ios::nocreate:打开已存在的文件,如果文件不存在,打开失败,不创建
ios::noreplace:创建新文件,如果文件已存在,打开失败,不覆盖
复合模式:
ios::in|ios::out:以读写的形式打开文件,对文件可读可写
ios::in|ios::binary:以二进制方式打开文件,进行读操作
判断文件是否打开可以直接用fail()函数,例如:
(文件操作完记得关闭文件操作)
2、文件的读写
先声明对象:
ifstream ifile; //声明一个输入流,用来读操作
ofstream ofile; //声明一个输出流,用来写操作
fstream iofile; //声明一个流对象,可读可写,用来加附加模式
文件流成员函数:(以下全是函数名,调用方式:流对象名.函数名())
open:打开文件并把它与流连接
attach:在一个打开的文件与流之间建立连接
close:刷新未保存的数据后关闭文件
flush:刷新流
put:把一个字节写入流
rdbuf:返回与流连接的filebuf对象
seekp:设置流文件指针位置
setmode:设置流为二进制或文本模式
tellp:获取流文件指针位置
write:把一组字节写入流中
fstream的成员函数:
get(c):从文件读取一个字符
getline(str,n,'\n'):从文件读取字符存入字符串str中,直到读取n-1个字符或遇到“\n"时结束
peek():查找下一个字符,但是不从文件中取出
put(c):将一个字符写入文件
putback(c):对输入流放回一个字符,但不保存
eof:如果读取超过eof,返回true
ignore(n):跳过n个字符,参数为空时,表示跳过下一个字符
例子: