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

C++ 语法文件

程序运行时产生的数据都属于临时数据,程序结束就会被释放。

通过文件可以可以将数据持久化

c++中对文件操作需要包含头文件fstream

文件的类型分为两种

1.文本文件 文件以文本的ASCII码形式存储在计算机中

2.二进制文件 稳重以文本的二进制形式存储在计算机中 用户一般不能直接读懂

操作文件的三大类

ofstream

ifstream

fstream

写文件

1.包含头文件

#include <fstream>

2.创建对象

ofstream ofs

3.打开文件

ofs.open("path","打开方式")

4.写数据

 ofs<<"写入数据"

5.关闭数据

ofs.close()

#include <iostream>
#include <fstream>
using namespace std;
void test65() {ofstream ofs;ofs.open("/Users/king/Documents/cpp/cpplearn/cpplearn/test.txt",ios::out);ofs << "12345677" << endl;ofs.close();}
int main(int argc, const char * argv[]) {// insert code here...std::cout << "Hello, World!\n";test65();std::cout << "end!\n";return 0;
}

文件操作必须包含fstream

读文件可以利用ofstream  或者fstream类

打开文件时候需要指定操作文件的路径 以及打开方式

利用<<可与你向文件中写数据

操作完毕需要关闭文件

读文件

1.包含头文件

#include <fstream>

2.创建对象

ofstream ifs

3.打开文件

ifs.open("path","打开方式")

4.读数据

四种读取方式

5.关闭文件

ifs.close();

#include <iostream>
#include <string>
#include <fstream>
using namespace std;
void test65() {ofstream ofs;ofs.open("/Users/Documents/cpp/cpplearn/cpplearn/test.txt",ios::out);ofs << "12345677" << endl;ofs.close();}
void test66() {ifstream ifs;ifs.open("/Users/cpp/cpplearn/cpplearn/test.txt",ios::in);if (!ifs.is_open()) {cout << "文件打开失败" << endl;return;}char buf[1024] = {0};// 方式1
//    while (ifs >> buf) {
//        cout << buf << endl;
//    }//2.
//    while (ifs.getline(buf, sizeof(buf))) {
//        cout << buf << endl;
//    }//3.
//    string buffer;
//    while (getline(ifs, buffer)) {
//        cout << buffer << endl;
//    }//4. 效率低下char c;while ( (c = ifs.get()) != EOF ) {cout << c << endl;}ifs.close();}
int main(int argc, const char * argv[]) {// insert code here...std::cout << "Hello, World!\n";test65();test66();std::cout << "end!\n";return 0;
}

二进制读写

void test67() {ofstream ofs;ofs.open("/Users/xxx/Documents/cpp/cpplearn/cpplearn/test.txt",ios::out | ios::binary);Student1 s = {"王武",18};ofs.write((const char*)&s, sizeof(Student1));ofs.close();
}

void test69() {ifstream ifs;ifs.open("/Users/xxx/Documents/cpp/cpplearn/cpplearn/test.txt",ios::in | ios::binary);if (!ifs.is_open()) {std::cout << "is_open, failed!\n";return;}Student1 s;ifs.read((char *)&s, sizeof(Student1));cout << "name=" << s.m_name << "age = " << s.m_age << endl;ifs.close();}

相关文章:

  • 【Golang】exec.command命令日志输出示例
  • Linux常见面试题汇总
  • Java学习七、类和对象
  • AJAX-URL查询参数
  • 【机器学习】基于K-近邻的车牌号识别
  • spring boot bean的生命周期
  • 【高质量精品】2024美赛B题22页word版高质量半成品论文+多版保奖思路+数据+前四问思路代码等(后续会更新)
  • 杨中科 ASP.NETCORE 高级14 SignalR
  • Python循环语句——while循环的嵌套应用
  • 《Python 网络爬虫简易速速上手小册》第8章:分布式爬虫设计(2024 最新版)
  • Architecture Lab:Part C【流水线通用原理/Y86-64的流水线实现/实现IIADDQ指令】
  • 搭建游戏应该选择什么样的服务器?
  • C++类与对象(下)
  • JSR303参数校验-SpringMVC
  • Docker下安装GitLab
  • 【译】理解JavaScript:new 关键字
  • CSS中外联样式表代表的含义
  • express.js的介绍及使用
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Mocha测试初探
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Yeoman_Bower_Grunt
  • 笨办法学C 练习34:动态数组
  • 从零开始学习部署
  • 读懂package.json -- 依赖管理
  • 给github项目添加CI badge
  • 利用jquery编写加法运算验证码
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 前端技术周刊 2019-02-11 Serverless
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 前嗅ForeSpider采集配置界面介绍
  • 如何选择开源的机器学习框架?
  • 试着探索高并发下的系统架构面貌
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 网页视频流m3u8/ts视频下载
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 我的zsh配置, 2019最新方案
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • Java数据解析之JSON
  • !$boo在php中什么意思,php前戏
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #微信小程序(布局、渲染层基础知识)
  • (Java数据结构)ArrayList
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (循环依赖问题)学习spring的第九天
  • (转)用.Net的File控件上传文件的解决方案
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .Net MVC + EF搭建学生管理系统
  • .sh
  • /etc/sudoers (root权限管理)
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @Bean有哪些属性