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

C++系统IO

C++系统IO

头文件的使用

1.使用系统IO必须包含相应的头文件,通常使用#include预处理指令。
2.头文件中包含了若干变量的声明,用于实现系统IO。
3.头文件的引用方式有双引号和尖括号两种,区别在于查找路径的不同。
4.C++标准库提供的头文件通常没有后缀,如iostream。

注意:引用头文件时尖括号(c++标准库提供的头文件)和双引号(用户自定义的头文件)的区别
main.cpp

#inlcude <iostream> //系统从环境变量去寻找头文件
#inlcude "myheader.h" //双引号的头文件,系统会在此文件的同级目录中寻找该头文件

输入输出流

iostream :标准库所提供的 IO 接口,用于与用户交互
– 输入流: cin ;输出流: cout / cerr / clog
– 输出流的区别: 1. 输出目标; 2. 是否立即刷新缓冲区
– 缓冲区与缓冲区刷新: std::flush; std::endl

如果程序崩溃,缓冲区中的内容会被回收,为了防止被回收,可以及时刷新缓冲区

std::flush:是一个用于刷新输出流缓冲区的操作符。当调用std::flush时,它会立即将输出流缓冲区中的数据发送到对应的输出设备(如控制台或文件),而不管缓冲区是否已满。

std::endl:它不仅具有刷新缓冲区的功能,还会在输出流中插入一个换行符\n 。

频繁刷新缓冲区主要存在以下缺点
性能降低:刷新缓冲区会涉及数据的传输和磁盘 I/O 操作(如果输出到文件),频繁进行这些操作会增加系统开销。例如在一个循环中频繁使用std::endl输出数据,每次都刷新缓冲区,相比只在循环结束后刷新,会消耗更多时间在数据传输和 I/O 操作上导致程序整体运行速度变慢
资源浪费:频繁的刷新操作意味着频繁地访问输出设备(如显示器、磁盘等),这会加速设备的磨损。对于磁盘这种有机械结构的存储设备,频繁的写入操作会影响其使用寿命。同时,每次刷新都需要系统分配资源来处理数据传输,过多的资源消耗可能会影响其他程序或系统进程的正常运行。

C / C++ 系统 IO 比较

– printf: 使用直观,但容易出错
– cout: 不容易出错,但书写冗长
– C++ 20 格式化库:新的解决方案


文章转载自:

http://FxhnpHk8.rszyf.cn
http://HCamJMvq.rszyf.cn
http://syQGJbyF.rszyf.cn
http://lLS6KKn2.rszyf.cn
http://aJQ75RDp.rszyf.cn
http://OsOpT59h.rszyf.cn
http://bYDKCB2T.rszyf.cn
http://fTN2fcpf.rszyf.cn
http://0kJbNK7N.rszyf.cn
http://UUwyHmn8.rszyf.cn
http://E0802mhU.rszyf.cn
http://loO28uuO.rszyf.cn
http://yKnWMPPr.rszyf.cn
http://QAtjFOYT.rszyf.cn
http://BgwuV5xV.rszyf.cn
http://H8YJ4ZZj.rszyf.cn
http://RtFDQTYU.rszyf.cn
http://GAj5eBym.rszyf.cn
http://sKOihkny.rszyf.cn
http://RyVV83ZQ.rszyf.cn
http://XT18od5f.rszyf.cn
http://wFu0Ap2y.rszyf.cn
http://WFJ58bOy.rszyf.cn
http://FpRPlzzr.rszyf.cn
http://SIE8HcSU.rszyf.cn
http://w989SNlh.rszyf.cn
http://7L5Z3Nfn.rszyf.cn
http://vZ3031dE.rszyf.cn
http://86Nft14j.rszyf.cn
http://bqLzpGIG.rszyf.cn
http://www.dtcms.com/a/211203.html

相关文章:

  • C++学习之STL学习:string类使用
  • 《深入Python:新手易踩的语法雷区与进阶启示》
  • 再谈Linux 进程:进程等待、进程替换与环境变量
  • 【Node.js】高级主题
  • 鸿蒙UI开发——Builder函数的封装
  • 怎么开发一个网络协议模块(C语言框架)之(一) main
  • 连接表、视图和存储过程
  • 使用LLaMA-Factory微调ollama中的大模型(二)------使用数据集微调大模型
  • 织梦dedecms上传附件不自动改名的办法
  • Vanna.AI:解锁连表查询的新境界
  • ae钢笔工具无法编辑形状图层的路径
  • WPS 64位与EndNote21.5工作流
  • Eigen 直线拟合/曲线拟合/圆拟合/椭圆拟合
  • leetcode hot100刷题日记——14.二叉树的最大深度
  • CAU人工智能class5 激活函数
  • IPD推行成功的核心要素(十二)CDP确保产品开发的正确方向
  • XOR符号
  • UE5 图片导入,拖到UI上变色
  • 在Visual Studio中进行cuda编程
  • Axure元件动作六:设置图片
  • 滚珠导轨在航空航天领域具体应用是什么?
  • 使用腾讯云3台轻量云服务器快速部署K8s集群实战
  • 独立机构软件第三方检测:流程、需求分析及电商软件检验要点?
  • RAID技术全解析:从基础到实战应用指南
  • 信息安全管理与评估2025上海卷
  • 关于vector、queue、list哪边是front、哪边是back,增加、删除元素操作
  • C++八股 —— 手撕shared_ptr
  • 事务处理与事务隔离
  • 哈希表原理与双散列实战指南
  • HJ14 字符串排序【牛客网】