【C++】输入输出及格式控制

news2024/10/5 12:47:15

在各类算法竞赛和机试中,对测试数据和输出格式往往会有明确的规定,笔者结合个人刷题经历,得到了以下C++语言输入输出控制的方法。

cin:从缓冲区中读取数据

cin>>从缓冲区中读取数据时,若缓冲区中第一个字符是空格、tab或换行这些分隔符时,cin>>会将其忽略并清除,继续读取下一个字符,若缓冲区为空,则继续等待。但是如果读取成功,字符后面的分隔符是残留在缓冲区的,cin>>不做处理

cin.get():读一个字符

cin.get()

cin.get()从输入缓冲区读取单个字符时不忽略分隔符,直接将其读取

即 cin.get()不舍弃行尾换行符 ==> 消除行尾换行符

getline():读整行数据

读取一行数据,并将分隔符之外的元素存储到指定数据结构中。

getline(cin,s)可以一次性读取自带空格的一行数据,弃行尾的换行符

getline (istream&  is, string& str, char delim);

将is中的数据读入str中,delim中的符号不存储(delim截断字符;在不自定义设置的情况下,遇到’\n’,则终止输入,并且将’\n’直接从输入缓冲区中删除掉,不会影响下面的输入处理)

img

<< 表示数据流向

字符串流(stringstream):字符串I/O、数据类型转换

字符串流(stringstream)是一种特殊的流类,它允许将字符串作为输入和输出流进行处理。

头文件

其他类型转string:

std::stringstream ss;
ss << num;

string转其他类型:

使用类似cin的形式

 std::string str = "12345";
    std::stringstream ss(str);
    int num;
    ss >> num;

使用getline处理:

getline(str,s,',')//将str流中“,”分割的元素存入s中

读取一行整数放入vector中

(1)使用cin.get()

    vector<int> a;
    vector<int> b;
    string line, word;
    int temp;
    //放入第一个字符,注意cin是会对第一个换行符视而不见的
    cin >> temp;
    a.push_back(temp);
    //直到读取到换行符结束
    while (cin.get() != '\n') 
    {
        cin >> temp;
        a.push_back(temp);
    }

(2)使用cin.getline()

    getline(cin, line);
    //将记录绑定到刚刚读取的行,用到了sstream里面的对象
    istringstream record(line);
    while (record >> word)
    {
        b.push_back(atoi(word.c_str()));
    }

while(t–):行数固定

总行数已知

int t;
    cin>>t;
    while(t--){
    //处理每行数据
    }

while(cin &&):输入0结束循环

while(cin>>t&&t)//判断当前读取数据是否为0

while(cin):输入多组数据(任意组)

不指定数据组数量,例如EOF

while(cin>>a>>b)//可反复输入,直到没有读取到输入结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/954986.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PXE网络批量装机

目录 一、什么是PXE&#xff1f; 二、PXE&#xff08;Preboot Execution Environment&#xff09;的主要组件 1、PXE服务器&#xff08;PXE Server&#xff09; 2、DHCP服务器&#xff08;Dynamic Host Configuration Protocol Server&#xff09; 3、TFTP服务器&#xff…

信号完整性分析基础知识之有损传输线、上升时间衰减和材料特性(四):有损传输线建模

传输线中信号衰减的两个损耗过程是通过信号和返回路径导体的串联电阻以及通过有损耗介电材料的分流电阻。这两个电阻器的电阻都与频率相关。 值得注意的是&#xff0c;理想电阻器的电阻随频率恒定。我们已经证明&#xff0c;在理想的有损传输线中&#xff0c;用于描述损耗的两个…

CAD 中Spline(样条曲线)的创建

我把自己研究的流程留下&#xff0c;读者需慢慢探索: Polyline pl new Polyline(); pl.AddVertexAt(0, new Point2d(2, 2), 0, 0, 0); pl.AddVertexAt(1, new Point2d(5, 5), 0, 0, 0); pl.AddVertexAt(2, new Point2d(10, 3), 0, 0, 0); pl.AddVertexAt(3, new Point2d(15, …

uniapp 布局(自定义导航栏加固定高度的主要内容)

不想让整体页面出现滚动条 页面大致分为三部分&#xff0c;导航栏、主题内容、tabbar&#xff0c;不想让整个页面出现滚动条&#xff0c;只想让主要内容滚动。 我这里是直接用了uni.getSystemInfoSync()&#xff0c;整体分为两部分&#xff0c;自定义头部和滚动内容&#xff…

UE5- c++ websocket客户端写法

# 实现目标 ue5 c 实现socket客户端&#xff0c;读取服务端数据&#xff0c;并进行解析 #实现步骤 {projectName}.Build.cs里增加 "WebSockets","JsonUtilities", "Json"配置信息&#xff0c;最终输出如下&#xff1a; using UnrealBuildTool;…

【SpringSecurity】九、Base64与JWT

文章目录 1、base64编码2、Base64Url3、JWT的产生背景4、JWT介绍5、JWT组成5.1 Header5.2 Payload5.3 Signature 6、JWT的使用方式7、JWT的几个特点 1、base64编码 base64是一种编码方式&#xff0c;不是加密方式。 所谓Base64&#xff0c;就是说选出64个字符&#xff1a;小写…

LNMP 平台搭建(四十)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 搭建LNMP 一、安装Nginx 二、安装Mysql 三、安装PHP 四、部署应用 前言 LNMP平台指的是将Linux、Nginx、MySQL和PHP&#xff08;或者其他的编程语言&#xff0c;如…

【Apollo学习笔记】——规划模块TASK之SPEED_BOUNDS_PRIORI_DECIDER

文章目录 前言SPEED_BOUNDS_PRIORI_DECIDER功能简介SPEED_BOUNDS_PRIORI_DECIDER相关配置SPEED_BOUNDS_PRIORI_DECIDER流程将障碍物映射到ST图中ComputeSTBoundary(PathDecision* path_decision)ComputeSTBoundary(Obstacle* obstacle)GetOverlapBoundaryPointsComputeSTBounda…

视觉化洞察:为什么我们需要数据可视化?

为什么我们需要数据可视化&#xff1f;这个问题在信息时代变得愈发重要。数据&#xff0c;如今已成为生活的一部分&#xff0c;我们每天都在产生大量的数据&#xff0c;从社交媒体到购物记录&#xff0c;从健康数据到工作表现&#xff0c;数据无处不在。然而&#xff0c;数据本…

uniapp项目实践总结(五)自定义底部导航栏

在底部导航栏这个模块,很多时候默认的样式不符合我们的设计规范和需求,因此需要自定义底部导航栏,这样可以满足我们的需求,也可以更加个性化,增加用户体验,下面就介绍如何自定义底部导航栏。 目录 准备导航素材配置页面导航自定义导航栏准备导航素材 要自定义底部导航栏…

HTML基础--标签

目录 列表标签 有序列表 type属性 有序列表嵌套 无序列表 type属性 无序列表嵌套 常见应用场景 表格标签 表格展示效果 表格属性 表格单元格合并 单元格合并属性 列表标签 HTL作为构建网页内容的标记语言&#xff0c;提供了多种列表标签&#xff0c;用于在网页中展…

栈和队列(优先级队列)

一)删除字符串中所有相邻字符的重复项 1047. 删除字符串中的所有相邻重复项 - 力扣&#xff08;LeetCode&#xff09; 算法原理:栈结构模拟&#xff0c;只是需要遍历所有字符串中的字符&#xff0c;一次存放到栈里面即可&#xff0c;也是可以使用数组来模拟一个栈结构的: class…

工厂人员作业行为动作识别检测算法

工厂人员作业行为动作识别检测算法通过yolov7python深度学习算法框架模型&#xff0c;工厂人员作业行为动作识别检测算法实时识别并分析现场人员操作动作行为是否符合SOP安全规范流程作业标准&#xff0c;如果不符合则立即抓拍告警提醒。Python是一种由Guido van Rossum开发的通…

2023-08-31 打印IEEE标准的 float 符号位, 阶码位, 尾数位

老林的C语言新课, 想快速入门点此 <C 语言编程核心突破> 打印IEEE标准的float符号位, 阶码位, 尾数位 前言一、实现算法二、实现代码总结 前言 学过深入理解计算机系统的同学, 都知道float的实现方式, 按照IEEE标准, 由符号位, 阶码位, 尾数位组成, 本文给出一个代码, …

山海炮性能版售价25.88万元,越来越野

8月25日&#xff0c;长城炮全性能家族霸屏成都车展。作为领衔车型、长城炮旗下大型高性能豪华皮卡——山海炮性能版&#xff0c;全球首秀&#xff0c;以“更大、更强、更豪华”的极致实力&#xff0c;携光而至&#xff0c;成就中国最强硬派越野皮卡。 个性化定制共创新品2023款…

【Linux】0基础从获取docker,一步一步到部署PaddleSpeech

一、利用VMware安装ubuntu 1.安装VMware 具体操作详细安装VMware的方式 另外附部分VMware密匙 4A4RR-813DK-M81A9-4U35H-06KND NZ4RR-FTK5H-H81C1-Q30QH-1V2LA JU090-6039P-08409-8J0QH-2YR7F 4Y09U-AJK97-089Z0-A3054-83KLA 4C21U-2KK9Q-M8130-4V2QH-CF810 MC60H-DWH…

机场数据安全三步走战略|盾见

2021年9月1日&#xff0c;《数据安全法》正式实施&#xff0c;标志着数据安全上升到国家层面&#xff0c;自此数据安全建设有法可依&#xff0c;规定了包括数据安全处理、建立健全各项制度、促进数据安全和发展、满足电子政务数据合理需求、保障国家安全等。 同一天&#xff0…

力扣奇遇记 [第二章]

&#x1f3ac; 博客主页&#xff1a;博主链接 &#x1f3a5; 本文由 M malloc 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;LeetCode刷题集&#xff01; &#x1f3c5; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指…

材料科学顶刊IF:29.4 |工程手段 干预细菌铁死亡

8月1日&#xff0c;凌恩生物客户四川大学邓怡及白丁等在《Advanced Materials》发表题为Engineered bio-heterojunction confers extra- and intracellular bacterial ferroptosis and hunger-triggered cell protection for diabetic wound repair的研究论文。该研究报道了一种…

ZooKeeper集群环境搭建

&#x1f947;&#x1f947;【大数据学习记录篇】-持续更新中~&#x1f947;&#x1f947; 个人主页&#xff1a;beixi 本文章收录于专栏&#xff08;点击传送&#xff09;&#xff1a;【大数据学习】 &#x1f493;&#x1f493;持续更新中&#xff0c;感谢各位前辈朋友们支持…