ofstream outFile("client.dat",ios::out|ios::binary);
//创建文件
/*
clients.dat 要创建的文件的名字
ios::out 文件打开方式
ios::out 输出到文件,删除原有内容
ios::app 输出到文件,保留原有内容,总是在尾部添加
ios::binary 以二进制文件格式打开文件
*/
ofstream fout;
fout.open("test.out",ios::out);
//判断是否打开成功:
if(!fout){
cout << "error" << endl;
}
//文件名可以给出绝对路径,也可以给出相对路径。没有交代路径则会在当前文件夹创建文件
/*绝对路径:
"c:\\tmp\\mydir\\some.txt"
相对路径:
"\\tmp\\mydir\\some.txt"
当前盘符根目录下:
"tmp\\mydir\\some.txt"
当前文件夹的tmp子文件夹里面
"..\\tmp\\mydir\\some.txt"
当前文件夹的父文件夹下
"..\\..\\tmp..."
*/
/*文件的读写指针
对于输入文件,有一个读指针
对于输出文件,有一个写指针
对于输入输出文件,有一个读写指针
指针用于标识文件操作的当前位置,该指针在哪里,读写操作就在哪里进行
*/
ofstream fout("a1.out",ios::app); //以添加方式打开
long location = fout.tellp(); //取得写指针的位置
location = 10;
fout.seekp(location); //将写指针移动到第10个字节处
fout.seekp(location,ios::beg);//从头数location
fout.seekp(location,ios::cur);//从当前位置数location
fout.seekp(location,ios::end);//从尾部数location
ifstream fin("a1.in",ios::ate);
//打开文件,定位文件指针到文件尾
long location = fin.tellg(); //取得读指针的位置
location = 10L;
fin.seekg(location); // 与seekp相同
/*
字符文件的读写
因为文件流也是流,所以流的成员函数和流操作算子也同样适用于文件流
文件写完应该关闭关闭,否则在硬盘的内容可能没有向文件写完整。
*/
//二进制文件的读写
//二进制的读文件:
/*
ifstream 和 fstream 的成员函数
istream& read(char* s,long n);
将文件读指针指向的地方的n个字节内容,读入到内存地址s,然后将文件
读指针向后移动n字节(以ios::in方式打开文件时,文件读指针开始指向文件开头)
istream& write(const char*s,long n);
将内存地址s处的n个字节内容,写入到文件中写指针指向的位置,然后
将文件写指针向后移动n字节(以ios::out方式打开文件时,文件写指针
开始指向文件开头,以ios::app打开时指向末尾)
*/