操作读与写"/>
C++文件操作读与写
文件操作
程序运行时的产生的数据都属于临时数据,程序一旦运行结束都会被释放,通过文件可以将数据持久化,c++中对文件操作需要包括头文件
文件类型分为两种:
1.文本文件 文件以文本的ASCII码形式存储在计算机
2. 二进制文件 文件以文本的二进制形式储存在计算机中,用户一般不能直接读懂他们
操作文件的三大类:
. ofstream : 写文件
. ifstream : 读文件
. fstream : 读写文件
文本文件
- 写文件
1.包含头文件 #include
2. 创建流对象 ofstream ofs;
3.打开文件 ofs.open(“文件路径”,“打开方式”);
4.写数据 ofs<<“写数据”;
5.关闭文件。
文件的打开方式: | 解释 |
---|---|
ios::in | 为读文件而打开文件 |
ios::out | 为写文件而打开文件 |
ios::ate | 初始位置:文件尾 |
ios::app | 追加的方式写文件 |
ios::trunc | 如果文件纯在先删除,再创建 |
ios::binary | 以二进制方式打开 |
注意: 文件打开方式可以配合使用,利用| 操作符
#include<fstream>
void test01(){ofstream ofs; //创建流对象ofs.open("leb.txt",ios::out);ofs<<"姓名: 张三"<<endl;ofs<<"性别: 男"<<endl;//关闭文件ofs.close();}
读文件
1.包含头文件 #include
2. 创建流对象 ifstream ifs;
3.打开文件 ofs.open(“文件路径”,“打开方式”); 并判断是否打开成功
4.读数据 四种方式读取.
5.关闭文件。 ifs.close();
#include<fstream>
void test01(){ifstream ifs;ifs.open("leb.txt",ios::in);if(!ifs.is_open()){cout<<"文件打开失败"<<endl;return ;}//读数据//第一种:char buf[1024]={0};while(ifs>>buf){ //遇见空格就结束, cout<<buf<<endl;}//第二种char buff[1024]={0};while(ifs.getline(buf,1024)){ //读一行cout<<buff<<endl; }//第三种string bu;while(getline(ifs,bu)){cout<<bu<<endl;}//第四种 ,一个一个字符读,不推荐char c;while((c=ifs.get())!=EOF) //EOF 文件尾 {cout<<c;}ifs.close();}
二进制文件
以二进制方式对文件进行读写操作;
打开方式要指定为ios::binary;
写文件
二进制方式写文件要利用流对象调用成员函数write;
ostream & write(const char * buffer,int len);
字符串指针buffer指向内存种的一段存储空间,len是读写的字节数.
class person{char m_name[64]; //姓名int m_age; };
void test(){ofstream ofs;ofs.open("leb.txt",ios::out| ios::binary);person p={"张",18};ofs.write((const char*)&p,sizeof(person));ofs.close();}
读文件
二进制方式读文件主要利用流对象调用成员函数read;
函数原型 istream &read(char * buffer,int len);
buffer 指向内存种的一段存储空空间,len是读写的字节数.
#include<fstream>
class person{char m_name[64]; //姓名int m_age; };
void test01(){ifstream ifs; //创建流对象ifs.open("leb.txt",ios::in | ios::binary);Person p;ifs.read((char*)&p,sizeof(person))://关闭文件ifs.close();}
更多推荐
C++文件操作读与写
发布评论