C++基础——输入输出和缺省参数讲解
上篇文章中,我们学习了C++的域名空间,这次继续来学习C++的基础知识。
目录
一.C++的输入输出
总结:
二.缺省参数
全缺省案例:
部分缺省案例:
一.C++的输入输出
例:
#include<iostream>
using std::cout;
using std::cin;
using std::endl;int main() {cout << "Hello World" << endl;int a;double b;char c;cin >> a;cin >> b >> c;cout<<a<<b<<c<<endl;return 0;}
由结果可知:cout和cin具有可以自动识别变量的类型的功能,这是C++优于C语言的printf和scanf,但这也是它的缺点所在,cout不能够控制小数的位数,不能轻易输出字符变量c的ASCII码值,而printf可以。
int main(){int a;double b;char c;//C++的输入输出可以自动识别变量的类型cin >> a;cin >> b >> c;cout << "C++版本的输出:" << endl;cout << "int a : "<< a<<endl;cout <<"double b : " << b << " char c : " << c << endl;cout << " ——————————————————————————————"<<endl;printf("C的输出:\n");printf("int a:%d\n", a);printf("double b:%.2lf\n", b);printf("char c:%d\n", c);}
但C++是兼容C语言的,我们可以将cin和printf混合着用,方便又快捷。
对于以上这些,我对C++的输入输出做个总结:
1. 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件 以及按命名空间使用方法使用std。
2. cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含< iostream >头文件中。
3. >>是流提取运算符;<<是流插入运算符。
4. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。 C++的输入输出可以自动识别变量类型。
5. 实际上cout和cin分别是ostream和istream类型的对象,>>和<<也涉及运算符重载等知识, 这些知识我们我们后续才会学习,所以我们这里只是简单学习他们的使用。
二.缺省参数
定义:缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参,则采用该形参的缺省值,否则使用指定的实参。
例:
void F(int a = 0) { //函数缺省形参cout <<"a的值为:"<< a << endl;
}
int main() {F(); //缺省——省去实参赋值传递,系统会默认调用形参给出的值F(10); //未缺省——使用实参的值,那么调用时就不会使用形参的值了return 0;
}
全缺省案例:
void F(int a = 10, int b = 20, int c = 30) { //全缺省形参cout << " a="<<a << " b=" << b << " c=" << c << endl;
}
int main() {F(); //完全缺省——一个实参也不传F(17); //缺省两个,17只能赋给变量a去使用F(17, 29); //17赋给a, 29赋给bF(17, 29, 63); //未缺省return 0;
}
//注:给值时只能从左到右给,不能给a,c不给b!!!
还有就是:实参值传给形参的使用权限要大于使用缺省参数给出的值,所以一旦实参给出了值,编译器就不会再使用缺省参数给出的值!
部分缺省案例:
void F(int a, int b=15, int c = 30) {cout << " a=" << a << " b=" << b << " c=" << c << endl;
}int main() {F(); ——报错,因为形参a在函数种本就没有值,所以实参必须给值,否则报错 F(17); F(17, 29); F(17, 29, 63); return 0;
}
部分缺省的核心:从右往左连续缺省,也就是说当有一个的实参没传时,那么这个函数对应位置的形参一定处在最左边,即至少要给函数F传一个值及以上。
若是非要只给b缺省也可以:void F(int a=20, int c int b=15){} 把c写到b前面即可。
相关文章:
C# 搭建一个 基于ISqlSugarClient 三层架构框架 涉及数据库仓储 然后中间又有业务逻辑层 案例
要在C#中搭建基于ISqlSugarClient的三层架构框架,你需要定义数据访问层(DAL)、业务逻辑层(BLL)和表现层(UI)。下面是一个完整的例子,涉及数据库仓储、业务逻辑层,以及依赖注入。这个例子基于ASP.NET Core MVC构建,使用ISqlSugarClient来处理数据访问。这个例子中,我…...
JRE与JDK:内在关联与核心区别探析
标题:JRE与JDK:内在关联与核心区别探析 引言 在软件开发领域,Java以其独特的跨平台特性和丰富的开源生态赢得了广泛的赞誉和应用。而在Java技术栈中,Java Runtime Environment (JRE) 和 Java Development Kit (JDK) 是两个不可或…...
c++图论基础(1)
目录 无向图 无向图度 无向图性质 有向图 有向图度 有向图性质 图的分类: 稀疏图: 稠密图: 零图: 有向完全图: 无向完全图: 度序列: 图是由顶点集合(简称点集)和顶点间的边(简称边…...
git 配置相关
问题一:ssh-keygen -t ed25519 -C "Gitee SSH Key" 这个命令中的 ed25519 字符是什么意思? ssh-keygen 是一个用于生成SSH密钥的工具,SSH(Secure Shell)是一种网络协议,用于加密方式远程登录和其…...
leetCode65. 有效数字
leetCode65. 有效数字 题目思路 代码 class Solution { public:bool isNumber(string s) {int l 0, r s.size() - 1;// 1.忽略前后的空格while(l < r && s[l] ) l;while(l < r && s[r] ) r--;if(l > r) return false;s s.substr(l,r - l 1)…...
ArcGIS+ChatGPT双剑合璧:从数据读取到空间分析,一站式掌握GIS与AI融合的前沿科技!
目录 专题一 AI大模型应用 专题二 ArcGIS工作流程及功能 专题三 prompt的使用技巧 专题四 AI助力工作流程 专题五 AI助力数据读取 专题六 AI助力数据编辑与处理 专题七 AI助力空间分析 专题八 AI助力遥感分析 专题九 AI助力二次开发 专题十 AI助力科研绘图 专题十一…...
C++基础——输入输出和缺省参数讲解
上篇文章中,我们学习了C的域名空间,这次继续来学习C的基础知识。 目录 一.C的输入输出 总结: 二.缺省参数 全缺省案例: 部分缺省案例: 一.C的输入输出 例: #include<iostream> using std::co…...
Git使用详细教程
1. cmd面板的常用命令 clear:清屏cd 文件夹名称----进入文件夹cd … 进入上一级目录(两个点)dir 查看当前目录下的文件和文件夹(全拼:directory)Is 查看当前目录下的文件和文件夹touch 文件名----创建文件echo 内容 > 创建文件名----创建文件并写入内容rm 文件名…...
11月新书预告——GNN、深度学习和元宇宙
11月的新书聚焦AI的前沿主题——GNN,另外,还有两本重磅的深度学习好书,也不乏元宇宙、智能驾驶和硬件产品经理等全新技术主题的好书。 1. 图神经网络:基础、前沿与应用 吴凌飞 崔鹏 裴健 赵亮 编著 张钹、韩家炜、…...
YOLOv5 PyQt5 | PyQt5快速入门 | 2/3
YOLOv5 PyQt5 快速入门 2/3 文章目录 YOLOv5 PyQt5 快速入门 2/31. 设计页面2. PyQt5 打开图片3. PyQt5 打开视频4. PyQt5 打开摄像头源码1. 设计页面 首先我们利用QtDesigner来设计一个页面。这个页面比较简单,包含三个PushButton、两个GroupBox、两个Textlabel。 设计好后我…...
Java为什么吧String设计为不可变类?
文章目录那么为什么要这么设计呢?防止被篡改,保证信息数据的安全性不变的对象和值是线程安全的哈希值的唯一性来挺好性能提高常量池的可用性在Java中String类由final修饰,所以不能被继承。被final修饰主要是为了让String成为一个不可变类因为…...
【javaEE】多线程进阶(Part1 锁策略、CAS、synchronized )
目录前言/补充4. 描述一下线程池的执行流程和拒绝策略有哪些?【面试题!】一、常见锁策略一)乐观锁VS悲观锁二)读写锁VS普通互斥锁三)重量级锁VS轻量级锁四)自旋锁VS挂起等待锁五)公平锁VS非公平…...
deepin(深度)系统下qt5.12.0的程序打包发布到linux云服务器上
做项目时要求,要求做一个用于QT客户端更新提供更新的服务器,服务器弄好啦,要测试一下,在发布时,发现了一些问题,在此记录一下。 这个打包和我的前一篇博客步骤一样,打包可参考https://blog.csd…...
精读大型网站架构:前端架构模块化的方法及困境,自研框架Trick
模块化的方法 网页和网页之间有很多相似或者相同的模块,模块化就是把这些模块抽离并独立管理。而模块化的方法,就是把模块的HTML、CSS和JavaScript文件独立出来,然后通过某种方法关联到使用这些模块的网页上。 在介绍模块化的具体方法之前&…...
用Python实现的这五个小游戏,你真的学会了嘛?
游戏名称1、五子棋 2、雷霆战机 3、贪吃蛇 4、坦克大战 5、俄罗斯方块 开发环境 Python版本:3.6.4 相关模块: pygame模块; 以及一些Python自带的模块。 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可。 一&am…...
linux环境下查询主板、CPU、内存等硬件信息
文章目录前言dmidecode常用参数-t参数测试-q参数测试-s参数测试总结前言 如果是在windows系统下,查询电脑硬件会容易的多,可以通过电脑属性、计算机管理等多种图形化界面中查到,如果安装了各种电脑管家,那查询这类信息就更方便了…...
查看日志.
如果查看比较小的日志文件:cat xxx.log 一般常用:view xxx.log/vi xxx.log查找关键字,如“木叶”:编辑,/木叶,确定,然后按“n”键就能往下找。 如果想往上找,输入:$到最后一行&#…...
vue3 生命周期函数,都改了啥?
vue2到3常用生命周期钩子函数的变化 Ⅰ. 实例化 和 数据初始化 (beforeCreate,created > setup) 1. new Vue 从开始 > 结束 [vue2和3 、两版本区别处] vue2的写法> export default {beforeCreate(){console.log(vue的实例 还没ne…...
基于springboot的医院管理系统
项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里,你想解决的问题࿰…...
Django + Nginx https部署实战(第一辑)
WebServer和WebAPP 之前对于nginx的了解都只是听说,根本就不知道nginx对于整个网站的作用。经历了数个项目之后,我本人逐渐对nginx有了更深入的了解,也希望把这段经历拿出来分享给大家! 由于我本人之前接触的都是Python的Django…...
Pycharm+服务器运行代码
Pycharm服务器运行代码服务器的连接与Anaconda环境配置ssh连接安装Anaconda创建虚拟环境安装代码所需的库Pycharm上传代码到服务器服务器的连接与Anaconda环境配置 ssh连接 我使用的是MobaXterm,新建一个会话,选择SSH,输入主机IP地址自己的…...
【Spring】IDEAspring-mybatis的整合----关于配置文件的整合
文章目录spring-mybatis的整合过程步骤1.导包,spring的jar包,mybatis的jar包2.mybatis.xml配置3.spring-mybatis.xml配置4.dao、service层、代码测试spring-mybatis的整合过程步骤 1.导包,spring的jar包,mybatis的jar包 <!--统…...
ssm技术
ssm ssm框架配置 maven项目–》webquickstart pom文件 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLo…...
MQ消息队列
MQ消息队列 消息队列(Message Queue,简称MQ),指保存消息的一个容器,本质是个队列 消息队列是大型分布式系统不可缺少的中间件,也是高并发系统的基石中间件 使用消息队列还可以实现异步处理 下图便是消息…...
【JVM技术专题】精心准备了一套JVM分析工具的锦囊「JConsole补充篇」
前提概要 本篇文章主要针对于之前本系列文章的补充版,之前落下了Jconsole分析工具,所以为了了却这个遗憾,所以小编又开了这篇文章,主要针对于Jconsole工具进行相关的应用性能分析。 初识JConsole 【Jconsole(Java Moni…...
基于PHP的高效协同办公管理系统
有需要请私信或看评论链接哦 可远程调试 基于PHP高效协同办公管理系统一 介绍 高效协同办公管理系统基于Yii框架开发,数据库mysql,可以稳定用于商业以及门户级的开发和使用。 二 系统功能 用户 1 办公门户(邮件/日志/汇报/日程/信息中心/通知公告/微博…...
第十四届蓝桥杯(Web应用开发)模拟赛1期-大学组
数据类型检测 请看这篇数据类型检测 渐变色背景生成器 html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name&…...
【遥感科学】遥感科学绪论
第一章 绪论 本系列适用于梅安新老师的遥感导论复习,也可以作为遥感领域的快速入门文章 一、遥感的基本概念 啥子是遥感?借用童庆禧院士的理解,那就是欲穷千里目,更上一层楼,遥感可以看做人的眼睛或者感知的延伸&…...
Tensorflow图像识别 Tensorflow手写体识别(二)
资源介绍 我们从 MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges 这条链接(MNIST官网)中下载好数据集,如下: 下载下来以后整理成包含四个压缩包的文件MNIST_data(不要解压&#x…...
盘点上海IB国际学校,你会选哪一所呢?
之前,小编给大家盘点了上海热门的AP学校和Alevel学校,同时也介绍了国际课程的具体情况;今天就和大家聊聊上海的IB国际学校。IB即是国际文凭组织IBO(International Baccalaureate Organisation)为全球学生开设从幼儿园到大学预科的课程&#x…...
蓝桥杯练习系统(算法训练)ALGO-951 预备爷的悲剧
资源限制 内存限制:512.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 英语预备爷gzp是个逗(tu)比(hao),为了在即将到来的英语的quiz中不挂科,gzp废寝忘食复习英语附录单词…...
ROS1快速入门学习笔记 - 014launch启动文件的使用方法
一、定义 Launch文件:通过XML文件实现多节点的配置和启动(可自动启动ROSMaster) 二、常用语法 1. 根标签 <launch> - launch文件中的根元素采用<launch>标签定义 <launch>表示开始;<launch>表示结束&…...
NFT是什么?有什么用途?
NFT,即非同质化代币(Non-Fungible Token),是Web3技术的另一个重要应用。与比特币这样的同质化加密货币不同,NFT是独一无二的,每个代币都代表了一个独特的资产或物品。NFT通常基于区块链技术,如以…...
状态模式
文章目录 1.UML类图2.状态基类3.状态实现类3.状态机管理类使用示例 1.UML类图 2.状态基类 public abstract class State {public string? Name { get; set; }public StateMachine? StateMachine {get; set;}public abstract void Exit();public abstract void Enter(); }3.…...
刷题 数组-二分查找C++
. - 力扣(LeetCode) 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums [-1…...
力扣爆刷第129天之动态规划五连刷(完全平方数、单词拆分、打劫劫舍)
力扣爆刷第129天之动态规划五连刷(完全平方数、单词拆分、打劫劫舍) 文章目录 力扣爆刷第129天之动态规划五连刷(完全平方数、单词拆分、打劫劫舍)一、279. 完全平方数二、139. 单词拆分三、198.打家劫舍四、213. 打家劫舍 II五、…...