C++系统IO

C++系统IO

头文件的使用

1.使用系统IO必须包含相应的头文件,通常使用#include预处理指令。

2.头文件中包含了若干变量的声明,用于实现系统IO。

3.头文件的引用方式有双引号和尖括号两种,区别在于查找路径的不同。

4.C++标准库提供的头文件通常没有后缀,如iostream。

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

main.cpp

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 格式化库:新的解决方案

相关推荐
Frank_refuel2 小时前
【C++】智能指针
开发语言·c++
泡海椒2 小时前
JQuick-Excel VALIDATION 实战:用作用范围约束 Excel 导入校验
开发语言·python·excel
xuxigifxfh2 小时前
HJ11 数字颠倒
java·开发语言·华为机考
一只旭宝2 小时前
数据结构与算法复习手册:从写过,到讲清楚
开发语言·数据结构·c++·算法
百度一下吧2 小时前
断网后 WebView 加载单页面应用:页面跳转 JS 加载失败的处理方案
开发语言·javascript·ecmascript
十五年专注C++开发2 小时前
std::filesystem::exists 在有的win10系统抛异常原因分析
c++·文件系统·filesystem
神仙别闹3 小时前
基于C语言开发的捕捉流星小游戏
c语言·开发语言
程序员Sunday3 小时前
Promise.all、allSettled、race、any 怎么选,失败后其他请求会怎样
开发语言·前端·javascript
hetao17338373 小时前
2026-10-07 hetao1733837 的刷题记录
c++·算法
daxiangxm3 小时前
GEO策略:让AI直接引用你的内容
开发语言·团队开发·运维开发·个人开发·数据库开发