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

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://www.xdnf.cn/news/8536.html

相关文章:

  • 电脑C盘清理技巧:释放空间,提升性能
  • 【MySQL】表的内外连接
  • 缓存的更新机制
  • 计算机网络期末复习资料
  • 建筑机械员(建筑施工机械管理人员)考试练习题
  • Gartner《Optimize GenAI Strategy for 4 Key ConsumerMindsets》学习心得
  • Netty学习专栏(四):如何解决粘包/拆包问题及自定义协议的实现
  • 网络安全从零开始(一):基础技能全解析
  • github好玩的工具
  • 车载中央域控制器测试【BCM模块介绍-外灯3】
  • SQL每日一题
  • 【MySQL】CRUD
  • SQL每日一题(4)
  • ae钢笔工具无法编辑形状图层的路径
  • Laravle 证件照排版
  • 预分配矩阵内存提升文件数据读取速度
  • 基于Spring boot+vue的中医养生系统的设计与实现(源码+论文+部署+安装+调试+售后)
  • NodeRAG: 基于异构节点的基于图的RAG结构
  • CSS入门
  • SDL2常用函数:SDL_LoadBMP 数据结构详解与示例
  • python 自动生成不同行高的word
  • 医疗AI项目文档编写核心要素硬核解析:从技术落地到合规实践
  • 集群聊天服务器学习 配置开发环境(VScode远程连接虚拟机Linux开发)(2)
  • MMaDA——开源首个多模态大扩散语言模型
  • 计算机网络(3)——传输层
  • 攻防世界——Web题 unseping 反序列化绕过
  • [Git] 如何进行版本回退
  • Python打卡第35天
  • CloudWeGo-Netpoll:高性能NIO网络库浅析
  • Docker:容器化技术