当前位置: 首页 > news >正文

C++文件操作

1.写文件

//文件操作
#include<fstream>
int main() {//写文件//路径  -- 此路径没有就生成给文件 string filePath = R"(E:\项目\test.txt)";//打开文件 ios::app在后面追加内容 啥也不跟是覆盖写入ofstream fout(filePath, ios::app);//检查是否打开成功if (fout.is_open() == false) {cout << "打开文件失败...\n";return 0;}//写入内容fout << "张三爱李四\n";fout << "李四爱王五\n";fout << "王五爱马六\n";//关闭文件fout.close();cout << "文件写入成功\n";return 0;
}

2.读文件

//文件操作
#include<fstream>
#include<string>//读文件要用
int main() {//读文件//路径  -- 此路径没有就生成给文件 string filePath = R"(E:\项目\test.txt)";//打开文件 ifstream fin(filePath);//检查是否打开成功if (fin.is_open() == false) {cout << "打开文件失败...\n";return 0;}//读取内容第一种方法//string buffer;//读取出来的一行内容放到buffer//while (getline(fin, buffer)) {//	cout << buffer << endl;//}//	//第2种方法//char buffer[101];//设置为缓冲区//	//这不是全局的getline//while (fin.getline( buffer,100)) {//	cout << buffer << endl;//}//第2种方法string buffer;//读取出来的一行内容放到bufferwhile (fin>>buffer) {//一行一行的读到buffer里面 读完返回空cout << buffer << endl;}//关闭文件fin.close();cout << "文件读取成功\n";return 0;
}

3.二进制写入

//文件操作
#include<fstream>
int main() {//写文件//路径  -- 此路径没有就生成给文件 string filePath = R"(E:\项目\test.txt)";//打开文件 ios::app在后面追加内容 啥也不跟是覆盖写入//以二进制方式 写入ofstream fout(filePath, ios::app|ios::binary);//检查是否打开成功if (fout.is_open() == false) {cout << "打开文件失败...\n";return 0;}//写入内容写入一个超女结构体struct st_girl {char name[31];int bh;char message[31];//备注double weight;};struct st_girl sgirl = { "陈小明",1,"中国四大帅哥之一",10000 };//  传入结构体地址  结构体大小fout.write((const char*)& sgirl, sizeof(sgirl));sgirl = { "李小彬",2,"中国四大帅哥之一",0.1 };fout.write((const char*)&sgirl, sizeof(sgirl));//关闭文件fout.close();cout << "文件写入成功\n";return 0;
}

4.读出二进制文件

//文件操作
#include<fstream>
#include<string>//读文件要用
int main() {//读文件//路径  -- 此路径没有就生成给文件 string filePath = R"(E:\项目\test.txt)";//打开文件 以二进制打开 ifstream fin(filePath,ios::binary);//检查是否打开成功if (fin.is_open() == false) {cout << "打开文件失败...\n";return 0;}//读取内容  怎么写进去就怎么读出来 之前是结构体这也要定义一个一模一样的结构体//一个超女结构体struct st_girl {char name[31];int bh;char message[31];//备注double weight;}girl;//循环读取while (fin.read((char*)&girl, sizeof(girl))) {cout << "name= " << girl.name << " bh= " << girl.bh << " message= " << girl.message <<" weight= " << girl.weight << endl;}//关闭文件fin.close();cout << "文件读取成功\n";return 0;
}

http://www.lryc.cn/news/100589.html

相关文章:

  • overleaf(latex) 公式过大,需要调小字体,同时公式编号字体不变的方法
  • flink采用thrift读取tablets一个天坑
  • Android 面试题 异常捕获 四
  • 自动化测试:让软件测试更高效更愉快!
  • SpringCloud学习—Feign负载均衡
  • 5G时代的APP开发:机遇与挑战
  • Python基础入门教程(上)
  • 【环境配置】Windows下WSL将ubuntu挪位置-系统盘清理
  • 【前端知识】React 基础巩固(三十三)——Redux的使用详解
  • 如何进行SQL优化
  • docker 部署 mysql8.0 无法访问
  • 理解构建LLM驱动的聊天机器人时的向量数据库检索的局限性 - (第1/3部分)
  • IntersectionObserver实现小程序长列表优化
  • Nginx动静分离、资源压缩、负载均衡、黑白名单、防盗链等实战
  • Rust之枚举与模式匹配
  • nfs服务器的描述,搭建和使用
  • libuv库学习笔记-filesystem
  • 记录vue的一些踩坑日记
  • Mybatis学习笔记
  • 网络编程(11):三次握手和四次挥手部分细节(后续补充)
  • MySQL学习笔记 ------ 子查询
  • 自然语言处理应用程序设计
  • LeetCode 436. Find Right Interval【排序,二分;双指针,莫队】中等
  • 正则表达式 —— Sed
  • TypeScript中数组,元组 和 枚举类型
  • MyBatis-Plus-Join 多表查询的扩展
  • 认清现实重新理解游戏的本质
  • LeetCode 2050. Parallel Courses III【记忆化搜索,动态规划,拓扑排序】困难
  • ETHERNET/IP转RS485/RS232网关什么是EtherNet/IP?
  • 使用node内置test runner,和 Jest say 拜拜