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

C++的输入和输出流详解

输入和输出流从键盘输入数据输出到显示器屏幕。这种输入输出称为标准的输入输出简称标准I/O。从磁盘文件输入数据数据输出到磁盘文件简称文件I/O。对内存中指定的空间进行输入输出通常指定一个字符数组作为存储空间存储任何信息称为字符串输入输出简称为串I/O缓冲区无论是输入还是输出都是存在缓存区的。标准输入流常用的成员函数1,cin.get()获取一个字符1charc cin.get();使用cin.get()可以家当缓冲区中的换行符拿走。注意返回值是什么类型的拿走的数据再输出的时候就是什么类型。2,cin.get(两个参数)获取字符串参数是字符串数组名和个数使用cin.get(两个参数)那字符串的时候换行符\0会遗留在缓冲区中。123charbuf[100] {0};cin.get(buf, 100);cout buf endl;只满足字符数组且输出的字符个数总比第二个参数少1.(原因字符数组最后一个字符是不可见字符’\0’)3cin.getline()获取字符串接收一个字符串并输出和cin.get(两个参数)相似不会将换行符加入字符串但是也不会留在缓冲区中而是直接扔掉。123charbuf[100] {0};cin.getline(buf, 100);cout buf endl;可以有第三个参数就是终止位置一个字符不包括这个字符4,cin.ignore()忽略一个字符括号中可以填入参数参数就是忽略字符的个数。默认是一个。123cin.ignore();charc cin.get();//abcout c endl;//b将a忽略了5cin.peak()偷窥1234charc cin.peek();cout c endl;//acharm cin.get();cout m endl;//a缓冲区中输入了一个a然后cin.peek()只是看了一眼并没有拿走所以调用cin.get()的时候可以直接从缓冲区中拿。6,cin.putback()放回(原来的位置)12345charc cin.get();cin.putback(c);//将从缓冲区拿走的字符返回原位置charbuf[100] { 0 };cin.getline(buf, 100);//接收的是缓冲区中的字符串输出的对象是buf这个字符数组。cout buf endl;输入hello输出仍是hello。小案例案例一判断输入的内容是字符串还是数字不存在混合的情况1234567891011121314151617181920intmain(){cout 请输入一个数字或者一个字符串 endl;charc cin.peek();if(c 0 c 9){cout 数字 endl;intnum;cin num;cout num endl;}else{cout 字符串 endl;charbuf[100] { 0 };cin buf;cout buf endl;}return0;}案例二用户输入0-10之间的数字如果输入有误重新输入。1234567891011121314151617181920intmain(){cout 请输入一个0-10之间的数字 endl;while(true){intnum;cin num;if(num 0 num 10){cout 输入正确输入的值为 num endl;break;}else{cout 输入有误请重新输入 endl;}}return0;}如果输入的是一个数字那么一切正常。但是如果输入字符那么就是陷入死循环。这个时候就是缓存区出现了问题。所以如果没有输入正确那么可以进行清空缓存区和重置标志位。这个标志位如果是0表示缓冲区正常1就是不正常12345cin.clear();//清空缓冲区cin.sync();//重置标志位cin.ignore();//帮助清空2013版本以上需要加。//上面三句话连着使用。cin.fail();//标志位标准输出流1cout.put(),向缓冲区写一个字符括号里面是啥就打印啥。可以拼接使用cout.put(‘h’).cout.put(‘a’);//打印结果就是ha2cout.write(两个参数),两个参数是char* 和 对应字符串的长度不能超过最大长度。从字符串中拿走规定长度的内容输出。12chararr[] hello;cout.write(arr,strlen(arr));//hello但是如果要全部打印的话直接使用coutarrendl;也是可以的。优点应该是可以打印规定长度的字符串。格式化输出:(1) 通过流成员函数 格式化输出1234567891011121314intmain(){intnum 99;cout.width(5);//指定宽度为20向前面加空格结果 99cout.fill(*);//空格处都填充上*结果***99填充内容会被下一此的填充内容覆盖cout.setf(ios::left);//输出的文本左对齐结果99***cout.unsetf(ios::dec);//卸载十进制cout.setf(ios::hex);//安装十六进制,结果为63***cout.setf(ios::showbase);//显示基数结果0x63*。输出对应进制的基数16进制就是0xcout.unsetf(ios::hex);//卸载十六进制cout.setf(ios::oct);//安装八进制结果为0143*。cout num endl;return0;}(2) 使用控制符 格式化输出如果使用控制符格式化输出的话需要引用头文件#includeiomanip指定宽度12345intnumber 110;cout setw(20)//指定宽度为20,然后默认将数据右对齐 number endl;//运行结果 110填充123456intnumber 110;cout setw(20) setfill(*)//填充位置在前在后无所谓 number endl;//运行结果:*****************110显示基数1234567intnumber 110;cout setw(20) number setfill(*) setiosflags(ios::showbase)//显示基数 endl;//运行结果:*****************110,和上面的没有区别因为十进制是没有基数的。设置左对齐123456789intnumber 110;cout setw(20) setfill(*) setiosflags(ios::showbase) setiosflags(ios::left)//设置左对齐 number endl;//运行结果:110*****************//这个时候需要注意一下如果按照刚才将number写在前面的时候是得不到想要的结果的所以应该将最终要输出的内容尽量写在右边。显示十六进制123456789intnumber 110;cout setw(20) setfill(*) setiosflags(ios::showbase) setiosflags(ios::left) hex//显示16进制 number endl;//运行结果:0x6e****************文件读写写文件需要引头文件#includefstream文件流

相关文章:

C++的输入和输出流详解

输入和输出流从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O。从磁盘文件输入数据,数据输出到磁盘文件简称文件I/O。对内存中指定的空间进行输入输出,通常指定一个字符数组作为存储空间&#xff0…...

别再为Unity WebGL播放本地视频发愁了!VideoPlayer + StreamingAssets保姆级避坑指南

Unity WebGL本地视频播放全攻略:VideoPlayer与StreamingAssets深度解析 第一次在Unity WebGL项目中尝试播放本地视频时,我遇到了一个令人抓狂的问题——视频在编辑器里运行完美,但打包后却死活不显示。经过整整两天的调试才发现,原…...

ComfyUI-Florence2终极指南:15种视觉任务的完整解决方案

ComfyUI-Florence2终极指南:15种视觉任务的完整解决方案 【免费下载链接】ComfyUI-Florence2 Inference Microsoft Florence2 VLM 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Florence2 ComfyUI-Florence2 是一款基于Microsoft Florence2视觉语言…...

电池销售系统|基于java + vue电池销售系统(源码+数据库+文档)

电池销售系统 目录 基于springboot vue电池销售系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue电池销售系统 一、前言 博主介绍:✌…...

Windows Cleaner深度指南:彻底解决C盘爆红和系统卡顿的终极方案

Windows Cleaner深度指南:彻底解决C盘爆红和系统卡顿的终极方案 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否曾经遇到过这样的情况&#xff…...

AI驱动的错误监控代理:从告警到自愈的智能运维实践

1. 项目概述:一个AI驱动的错误监控代理在软件开发和运维的日常里,错误监控是个老生常谈但又无法回避的核心议题。传统的监控方案,比如我们熟知的Sentry、Datadog APM或者自研的日志告警系统,已经能很好地完成“发现错误”和“告警…...

工业部署实战:用YOLOv6-S在T4 GPU上跑出869 FPS的保姆级量化教程

工业级YOLOv6-S量化部署实战:T4 GPU实现869 FPS的终极优化指南 当目标检测遇上边缘计算,如何在有限算力下榨干每一分性能?本文将带你深入YOLOv6-S的量化部署全流程,从模型导出到TensorRT优化,手把手实现T4 GPU上的极致…...

机器学习数据集规模与模型性能敏感性分析实战

1. 数据集规模与模型性能的敏感性分析实战在机器学习项目中,我们经常面临一个关键问题:到底需要多少数据才能训练出性能良好的模型?这个问题看似简单,却影响着项目的资源分配和进度规划。作为一名从业多年的数据科学家&#xff0c…...

蓝桥杯STC15单片机PCA定时器配置避坑指南:从CMOD到中断函数,这些细节别搞错

蓝桥杯STC15单片机PCA定时器配置避坑指南:从CMOD到中断函数,这些细节别搞错 当你第一次尝试将STC15单片机的PCA模块配置为定时器时,可能会遇到各种"玄学"问题:中断死活进不去、定时时间飘忽不定、甚至程序直接跑飞。这些…...

Reference Extractor:3分钟快速恢复丢失的Zotero和Mendeley引用数据

Reference Extractor:3分钟快速恢复丢失的Zotero和Mendeley引用数据 【免费下载链接】ref-extractor Reference Extractor - Extract Zotero/Mendeley references from Microsoft Word files 项目地址: https://gitcode.com/gh_mirrors/re/ref-extractor Ref…...

BetterGI原神自动化工具:5分钟快速上手,告别繁琐重复操作

BetterGI原神自动化工具:5分钟快速上手,告别繁琐重复操作 【免费下载链接】better-genshin-impact 📦BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 …...

面试必备,查漏补缺;多线程 +spring+JVM 调优 + 分布式 +redis+ 算法

前言春招,秋招,社招,我们 Java 程序员的面试之路,是挺难的,过了 HR,还得被技术面,鄙人在去各个厂面试的时候,经常是通宵睡不着觉,头发都脱了一大把,还好最终侥…...

深入解析 OpenJDK 17 在 Linux 上的线程创建机制

在现代高性能 Java 应用中,线程管理是 JVM 的核心功能之一。Java 线程的创建和调度最终依赖于底层操作系统的线程实现。在 Linux 系统上,JVM 线程创建涉及 POSIX 线程(pthread)接口以及 Linux 内核的 clone/clone3 系统调用。本文…...

电-气-热综合能源系统优化调度模型详解

MATLAB代码:电-气-热综合能源系统耦合优化调度 关键词:综合能源系统 优化调度 电气热耦合 参考文档:自编文档,非常细致详细,可联系我查阅 仿真平台:MATLABCPLEX 主要内容:代码主要做的是一个考…...

拼多多电商数据采集实战:5分钟构建你的市场情报系统

拼多多电商数据采集实战:5分钟构建你的市场情报系统 【免费下载链接】scrapy-pinduoduo 拼多多爬虫,抓取拼多多热销商品信息和评论 项目地址: https://gitcode.com/gh_mirrors/sc/scrapy-pinduoduo 想要实时掌握拼多多平台的商品动态和用户反馈吗…...

机器学习算法评估:从指标选择到工程实践

1. 机器学习算法评估的核心逻辑在真实业务场景中,选择机器学习算法从来不是简单的"哪个准确率高就用哪个"。三年前我们团队在电商推荐系统升级时,曾因过度依赖单一评估指标导致上线后效果倒退。这个教训让我深刻认识到:算法评估是系…...

区块链DeFi实战

区块链DeFi实战:探索去中心化金融新机遇 近年来,区块链技术的快速发展催生了去中心化金融(DeFi)的崛起。DeFi通过智能合约和去中心化协议重构传统金融体系,为用户提供无需中介的借贷、交易和理财服务。本文将深入探讨…...

终极实战:5个高效微信自动化场景,用wxauto构建你的智能机器人

终极实战:5个高效微信自动化场景,用wxauto构建你的智能机器人 【免费下载链接】wxauto Windows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,简单微信机器人 项目地址: https://gitco…...

WarcraftHelper:魔兽争霸3终极增强插件解决现代系统兼容性问题

WarcraftHelper:魔兽争霸3终极增强插件解决现代系统兼容性问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款专为魔…...

精读双模态检测论文二十|北航 华东师大 腾讯优图官方跨模态Mamba封神!YOLOv8 原生适配,mAP 暴涨 5.9%,首个 Mamba 跨模态检测 SOTA!

🔥 本文定位:CSDN 原创硬核干货 | 顶刊级成果 | YOLOv5/v8/v11 全系列原生适配 | 端到端跨模态检测 SOTA🎯 核心收益:彻底解决跨模态检测三大行业痛点 ——模态差异大融合效果差、Transformer 融合计算量爆炸、CNN 融合全局建模能…...

AsrTools:3步完成音频转文字,本地免费语音识别工具

AsrTools:3步完成音频转文字,本地免费语音识别工具 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into a…...

机器学习实战:4个递进项目掌握Python数据科学全流程

1. 为什么选择这四个机器学习自学项目作为从业十年的数据科学家,我经常被问到"如何有效自学机器学习"。教科书式的理论学习往往让人陷入"学了很多却不会用"的困境。经过多年带新人的经验,我精选了这四个具有递进关系的实战项目&…...

拼多多数据洞察:如何用爬虫技术解锁电商市场真相

拼多多数据洞察:如何用爬虫技术解锁电商市场真相 【免费下载链接】scrapy-pinduoduo 拼多多爬虫,抓取拼多多热销商品信息和评论 项目地址: https://gitcode.com/gh_mirrors/sc/scrapy-pinduoduo 在电商竞争白热化的今天,数据已成为商业…...

ControlFlow框架:用Python构建可控的智能体工作流

1. 项目概述:从代码到智能的“指挥家”如果你和我一样,在过去几年里尝试过用大语言模型(LLM)构建自动化应用,那你一定经历过这种场景:写一段提示词,调用API,然后祈祷返回的结果格式正…...

终极内存清理指南:3分钟释放Windows内存,告别卡顿烦恼!

终极内存清理指南:3分钟释放Windows内存,告别卡顿烦恼! 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirro…...

MCP 2026动态权限分配失效事故复盘(某央企数据泄露溯源报告·内部首曝)

更多请点击: https://intelliparadigm.com 第一章:MCP 2026动态权限分配失效事故全景概览 2026年3月17日,某金融级多云控制平台(MCP)在执行跨租户策略同步时突发权限分配失效事件,导致约12%的生产工作负载…...

MCP 2026证书链校验绕过漏洞(CVE-2026-0947):如何用3行OpenSSL命令快速定位受影响节点?

更多请点击: https://intelliparadigm.com 第一章:MCP 2026证书链校验绕过漏洞(CVE-2026-0947)概述 CVE-2026-0947 是一个高危逻辑缺陷,影响主流 MCP(Multi-Channel Protocol)2026 实现中 TLS…...

最后30天!Docker Hub官方宣布2026.0版本将停用旧版AI插件API:迁移 checklist、兼容性矩阵与回滚熔断方案(含CLI一键检测脚本)

更多请点击: https://intelliparadigm.com 第一章:Docker Hub AI插件API停用公告与影响全景分析 Docker 官方于 2024 年 7 月 15 日正式宣布,自 2024 年 10 月 1 日起全面停用 Docker Hub 的 AI 插件 API(/v2/plugins/ai/ 端点&a…...

Sunshine游戏串流服务器:三步搭建你的跨平台游戏乐园

Sunshine游戏串流服务器:三步搭建你的跨平台游戏乐园 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 想要在任何设备上畅玩PC游戏吗?Sunshine作为一款免费开…...

为什么你的MCP 2026边缘服务始终达不到SLA 99.99%?——基于17个真实客户集群的优化归因分析

更多请点击: https://intelliparadigm.com 第一章:MCP 2026边缘服务SLA达标性诊断框架 MCP 2026边缘服务SLA达标性诊断框架是一套面向低时延、高可用边缘计算场景的轻量化可观测性验证体系,聚焦于响应延迟、服务连续性与资源隔离三类核心SLA…...