【C++】2.C++的输入与输出

news2024/11/27 6:33:02

文章目录

  • 前言
  • 一、C++的输入\出头文件
  • 二、C++的输入&输出关键字
    • 2.1 输出cout
    • 2.2 输入cin
  • 三、c++输入输出与c语言的输入输出


前言

c语言中我们使用scanf,printf等来进行输入、输出操作,在C++中我们是否有其他方式呢?答案是有的,下面我们来介绍c++的输入&输出。


一、C++的输入\出头文件

同c语言的标准输入输出#include <stdio.h>一样,c++输入输出也需要包含头文件#include <iostream>
注:iostream - input output stream 输入输出流。

  1. 观察c语言与c++的头文件,你会发现什么?c++的头文件没有.h的后缀。
    答:在早期c++中,c++的头文件是有.h的后缀的,你在一些很老的编译器上可以使用#include <iostream.h>这种头文件,比如VC6.0。但后来,c++有了命名空间,有很多标识符被放在c++的标准命名空间std中,为了与之前老版本的头文件(带.h)区分,新版本的头文件就取消了.h后缀。后来更是直接舍弃了老版本的头文件,于是现在的c++头文件不带.h后缀。
  2. 流是什么?
    答:在计算机中,流是指在输入/输出(I/O)操作中将数据从一个地方传输到另一个地方的连续数据序列。流可以是字节流(Byte stream)或字符流(Character stream),并且可以是单向流(输入或输出)或双向流。常见的流有文件流、网络流、管道流等。流的使用可以使程序的输入输出变得更为高效和灵活。

二、C++的输入&输出关键字

2.1 输出cout

在这里插入图片描述

说明:

  1. 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件以及按命名空间使用方法使用std。(std是c++官方的标准命名空间,使用官方库里面的函数/类/变量……需要使用这个命名空间)
  2. cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含< iostream >头文件中。
  3. <<是流插入运算符,>>是流提取运算符。它们同时也是c语言的左移操作符和右移操作符。使用时,编译器会根据上下文来识别它们代表的含义。
  4. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。C++的输入输出可以自动识别变量类型。
  5. 实际上cout和cin分别是ostream和istream类型的对象。

形象的解释:
在这里插入图片描述
cout后面 << 是可以累加的,打印时会自动识别变量类型。如下图
在这里插入图片描述


2.2 输入cin

在这里插入图片描述
cin会自动识别变量的类型。
注意:cin >> cout这样写是错误的


三、c++输入输出与c语言的输入输出

上面说到c++的输入&输出会自动识别变量类型,那如果我输出时要控制精度怎么办?cout也可以做到,但不推荐。

float a=0.123;
cout<<a<<endl;//输出 0.123
cout<<setprecision(5)<<a<<endl;//输出 0.123

cout.setf(ios::fixed);
cout<<setprecision(5);
cout<<a<<endl;//输出 0.12300

写这么麻烦干什么?c++兼容c,因此我们可以直接使用printf来控制。

同时c语言的输入输出函数快于c++的cin和cout.
这是由于c++兼容c,而输入输出函数是有缓冲区,因此c++的输入输出函数使用时要检查c语言的输入输出函数的缓冲区,这一定程度会降低它的性能。当然你可以通过关闭c++的同步来解决。


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

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

相关文章

JavaSE学习进阶day05_01 Collection集合概述

第九章 Collection集合 9.1 集合概述 在前面基础班我们已经学习过并使用过集合ArrayList<E> ,那么集合到底是什么呢? 集合&#xff1a;集合是java中提供的一种容器&#xff0c;可以用来存储多个数据。 集合和数组既然都是容器&#xff0c;它们有什么区别呢&#xff1…

快排(动图详细版,快速理解)

注&#xff1a;本文主要介绍六大排序中的快排 文章目录前言一、三大法则1.1 Hoare法1.2 挖坑法1.3 双指针法&#xff08;更加便捷&#xff09;1.4 三种方法时间复杂度计算二、快排栈问题优化方式2.1 三数取中2.2 小区间优化三、非递归快排前言 快速排序是Hoare于1962年提出的一…

生活污水处理设备选购指南

生活污水中含有大量的有机物&#xff08;如蛋白质、碳水化合物、脂肪、尿素、氨氮等&#xff09;及大量的病原微生物&#xff0c;可导致传染病蔓延流行。因此&#xff0c;生活污水在排放前&#xff0c;需要进行处理。那么如何正确的选择生活污水处理设备呢&#xff1f; 一、生活…

移动机器人设计与实践-基础概念汇总

如下全文在关键词提示词等脚本交互下&#xff0c;由文图版本生成式人工智能在1分钟内创作完成。 AI自动生成文章评分已经远超大部分博文评分值。 人类社会经历过农业时代&#xff08;最强代表汉唐&#xff09;-工业时代&#xff08;最强代表日不落帝国&#xff09;-信息时代&a…

利用MyBatis实现CRUD操作

文章目录一、添加按姓名查询用户记录功能1、添加按姓名查询的映射语句2、在用户映射器接口里添加按姓名查询用户记录的方法3、添加按姓名查询用户记录的测试方法4、测试按姓名查询用户记录二、插入表记录1、在UserMapper.xml里增加映射语句 - insert2、在UserMapper接口里增加i…

【三十天精通Vue 3】第七天 Vue 3 响应式系统详解

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: 三十天精通 Vue 3 文章目录引言一、Vue 3 响应式系统概述1.1 响应式系统的简介1.2 响应式系统…

【软件设计师14】UML建模

UML建模 稳定出一个&#xff0c;但是由于UML的图比较多&#xff0c;所以这种题比数据流图和数据库难度高 一般都会考用例图和类图&#xff0c;再附加其他的图 1. 用例图 包含关系include&#xff1a;比如登记外借信息必须先有用户登录 扩展关系extend&#xff1a;修改书籍…

C语言--文件操作--一起深入了解文件相关函数的知识

目录前言1.什么是文件1.1程序文件1.2数据文件1.3文件名2.文件的打开与关闭2.1文件指针2.2文件的打开与关闭fopen函数fclose函数3.文件的顺序读写3.1对比一组函数fputc函数fgetc函数fputs函数fgets函数fprintf函数fscanf函数fwrite函数fread函数4.1对比一组函数sprintfsscanf5.文…

ClickUp的最佳替代品,可更好地管理项目

ClickUp 是项目管理类的常见工具&#xff0c;它因团队协作、沟通、免费试用和强大功能等因素受到用户的喜爱。 该工具支持你清晰组织多个项目、进行团队协作并跟踪项目目标的实时进度。不同的视图选项使您能够为所有活动构建完美的工作流程。 尽管它很受欢迎&#xff0c;但用户…

ics-05(命令执行漏洞及伪协议读取)

打开链接&#xff0c;似曾相识的感觉&#xff08;前面做过一道题叫ics-06&#xff0c;那道题是对id的一个爆破&#xff09; 尝试后发现只有设备维护中心可以跳转 这和我们使用御剑扫描出来的结果是一样的 使用PHP伪协议读取 index.php 页面 构造payload&#xff08;在愚人杯ht…

小黑跟尚香一起疯狂星期四,然后慢慢跑回家,生活逐渐明朗,完赛了副中心全程马拉松的leetcode之旅:752. 打开转盘锁

宽度优先搜索法 class Solution:def openLock(self, deadends: List[str], target: str) -> int:# 目的地在死亡数组里if target in deadends:return -1# 起点在死亡数字里if 0000 in deadends:return -1# 起点就是目标字符串if 0000 target:return 0# 定义前向函数def pr…

Python与c语言的区别与联系

Python与c语言都是一种机器学习语言&#xff0c;进过长时间的学习和总结&#xff0c;我将Python与c语言的一些特点总结成以下几点&#xff0c;不全面还望多多指正。 1、因为C语言是编译型语言&#xff0c;python是解释型语言&#xff0c;所以python的执行速度没有C语言那么快。…

回归预测 | MATLAB实现GA-GRU遗传算法优化门控循环单元的数据多输入单输出回归预测

回归预测 | MATLAB实现GA-GRU遗传算法优化门控循环单元的数据多输入单输出回归预测 目录回归预测 | MATLAB实现GA-GRU遗传算法优化门控循环单元的数据多输入单输出回归预测效果一览基本介绍程序设计参考资料效果一览 基本介绍 MATLAB实现GA-GRU遗传算法优化门控循环单元的数据多…

详解Nginx代理WordPress搭建个人网站系统

1、搭建环境说明 服务器&#xff1a;Red Hat Enterprise Linux Server release 7.9 (Maipo) PHP&#xff1a;php-8.2.4 PHP: Downloads Nginx: 1.24.0 http://nginx.org/en/download.html WordPress:6.2 Download – WordPress.org Mysql&#xff1a;5.7.22 MySQL Communit…

【Java EE】-网络编程(一) 网络初识

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【JavaEE】 主要内容&#xff1a;单机、局域网、广域网、交换机、路由器。IP地址&#xff0c;端口号&#xff0c;协议&#xff0c;五元组。 协议分层&#xff0c;OSI七层网络模型…

【开源项目】SpringBoot实现接口加密解密

需求背景 在我们日常的Java开发中&#xff0c;免不了和其他系统的业务交互&#xff0c;或者微服务之间的接口调用 如果我们想保证数据传输的安全&#xff0c;对接口出参加密&#xff0c;入参解密。 但是不想写重复代码&#xff0c;我们可以提供一个通用starter&#xff0c;提…

数据结构系列17——lambda表达式

目录 1. 基本概念 2. 基本语法 3. 函数式接口 4. Lambda表达式的基本使用 4.1 语法精简 5. 变量捕获 6. Lambda在集合当中的使用 1. 基本概念 Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一…

再聊ChatGPT(关于安全,隐私和法律方面的风险)

我在上一篇博文中有谈到ChatGPT 发展可能会经历的一些阶段。ChatGPT的必经阶段&#xff1a;野蛮生长时代-管理层监管与风险提示-号召国产化-规范化常态化。 昨天刚好看到监管部门发文 说明监管部门已经意识到到ChatGPT野蛮生长阶段&#xff0c;其实是存在很多漏洞和问题的。 …

2022年 全国职业院校技能大赛(中职组)网络安全赛项 正式赛卷 A模块 做题记录

评分标准文件及环境 评分标准&#xff1a;ZZ-2022029 网络安全赛项正式赛卷.zip 自己做的Linux靶机&#xff1a; 自己做的Windows靶机&#xff1a; 文章目录评分标准文件及环境A-1 任务一 登录安全加固1. 密码策略&#xff08;Windows&#xff0c;Linux&#xff09;a. 最小密码…

年少不知回损好,却把插损当作宝

一博高速先生成员&#xff1a;黄刚 因为本期要讲的是插损和回损的关系&#xff0c;因此本文的开头&#xff0c;我们还是首先回顾下S参数的概念。首先我们需要知道S参数其实是个黑匣子&#xff0c;什么是黑匣子呢&#xff0c;那就是我们其实不需要知道它包含了哪些链路结构&…