c++/oop---文件操作
c++/oop---文件操作
#include <fstream>
文件的打开和关闭:
void open (const char * szFileName,int mode)
第一个参数是指向文件名的指针,第二个是文件打开模式标记
模式标记
ios::in (ifstream/fstream)打开文件读取数据。如果不存在则打开出错
ios::out (ofstream/fstream)打开文件用于写入,没有则新建,有则清除原有内容
ios::app (ofstream/fstream)打开文件,用于再其尾部添加数据,不存在则新建
ios::ate(ifstream)将文件读指针指向文件末尾
ios::binary(ifstream/ofstream/fstream) 以二进制方式打开文件。如不指定则以文本形式打开。
ios::in|ios::out (fstream)既能读也能写,文件打开时内容不改变,如果不存在则出错
ios::in|ios::out (ostream)只能写,文件打开时内容不改变,如果不存在则出错
ios::in|ios::out|ios::trunc(fstream)既能读也能写,文件打开时内容不改变,如果不存在则新建
ios::binary 也可以和其他模式标记组合使用
int main()
{
ifstream inFile;
inFile.open("E:\\lkw\\程设\\file\\hi.txt",ios::in|ios::out);
if(inFile)puts("aaaa"),inFile.close();
else puts("ERROR");
return 0;
}
指定文件的时候,可以用相对路径,也可以用绝对路径,相对路径从程序所在文件夹算起。
..\\代表上一级文件
文本文件的读写
使用文件流对象打开文件后,文件就成为了一个输入流或者输出流
可以用类似 cin 和 cout 的 >> << 进行读写
在程序结束之前要关闭之前打开的文件
一定要,否则文件内容可能会不完整
ostream & write (char * buffer , int count)
将内存中 buffer 所指向的 count 个字节的内容写入文件
从文件写指针指向的位置开始写入。文件打开时,文件写指针指向文件的开头(ios::app方式打开则指向末尾)
用 write 函数写入 n 个字节,则指针指向位置向后移动 n 个字节
outFile.write((char*)&s,sizeof(s))
将地址强制类型转换为 char* 型
Istream & read (char * buffer , int count)
从读指针指向的位置向后读取count个字节