网站建设视觉效果,广告设计软件app,网络营销是什么活动,信息大全文件操作
所有数据程序运行结束后都会释放通过文件可以将数据持久化头文件文件类型分为两种 文本文件—文件以文本的ASCII码形式存储在计算机中二进制文件—文件以文本的二进制存储在计算机中 操作文件的三大类 ofstream—写操作ifstream—读操作fstream—读写操作 文本文件 写…文件操作
所有数据程序运行结束后都会释放通过文件可以将数据持久化头文件文件类型分为两种 文本文件—文件以文本的ASCII码形式存储在计算机中二进制文件—文件以文本的二进制存储在计算机中 操作文件的三大类 ofstream—写操作ifstream—读操作fstream—读写操作 文本文件 写文件 包含头文件 #include 创建流对象 ofstream ofs; 打开文件 ofs.open(“文件路径”,打开方式); 写数据 ofs “写入数据” 关闭文件 ofs.close(); 注意 打开方式—需要时查找文件打开方式可以配合使用利用操作符 用二进制方式写文件—ios::binary|ios::out #includeiostream#includefstreamusing namespace std;void test(void){ofstream ofs;ofs.open(test.txt,ios::out);ofsnameendl;ofstest endendl;ofs.close();}int main(){test();return 0;}读文件包含头文件 #include 创建流对象 ifstream ifs; 打开文件 ifs.open(“文件路径”,打开方式); 读数据 四种读取方式 关闭文件 ifs.close(); #includeiostream#includefstreamusing namespace std;void test(void){ifstream ifs;ifs.open(test.txt,ios::in);if(!ifs.is_open()){cout 打开失败 endl;return ; }// //第一种读// char buf[1024] {0};// while (ifs buf)// {// cout buf endl;// }// // 第二种// char buf[1024] {0};// while (ifs.getline(buf, sizeof(buf)))// {// cout buf endl;// }// 第三种#includestringstring buf;while(getline(ifs,buf)){cout buf endl;}// // 第四种// char c;// while ((cifs.get())!EOF)//EOF文件结尾// {// cout c;// }ifs.close();}int main(){test();return 0;}二进制文件 打开方式要指定为ios::binary写文件 二进制方式写文件主要利用流对象调用成员函数write函数原型:ostream write(const char* buffer, int len);参数解释:字符指针buffer指向内存中一段存储空间。len是读写的字节数 读文件 二进制方式读文件主要利用流对象调用成员函数read函数原型:istream read(char *buffer, int len);参数解释:字符指针buffer指向内存中一段存储空间len是读写的字节数 #includeiostream#includefstreamusing namespace std;class Person{public:Person(char* name, int age){m_name name;m_age age;} char *m_name;int m_age;};void testw(void){ofstream ofs;ofs.open(person.txt, ios::out|ios::binary);Person p(zhangsan, 10);ofs.write((const char *) p, sizeof(Person));ofs.close();}void testr(void){ifstream ifs;ifs.open(person.txt, ios::in|ios::binary);if(!ifs.is_open()){coutfile open fail;}else{Person p(no, 0);ifs.read((char* )p, sizeof(Person));cout name p.m_name age p.m_age endl;}ifs.close();}int main(){testw();testr();return 0;}