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

【C++】2:cin和cout的介绍和使用,函数的缺省参数

目录

一、C++输入和输出

二、函数的缺省参数


一、C++输入和输出

  • <iostream> 是 Input Output Stream 的缩写,是标准的输入、输出流库,定义了标准的输入、输出对象。
  • std::cin 是 istream 类的对象,它主要面向窄字符(narrow characters (of type char))的标准输入流。
  • std::cout 是 ostream 类的对象,它注意面向窄字符的标准输出流。
  • std::endl 是⼀个函数,流插⼊输出时,相当于插⼊⼀个换行字符加刷新缓冲区。
  • <<是流插⼊运算符,>>是流提取运算符。(C语言还⽤这两个运算符做位运算左移/右移)
  • 使用C++输⼊输出更⽅便,不需要像printf/scanf输⼊输出时那样,需要手动指定格式,C++的输⼊输出可以自动识别变量类型(本质是通过函数重载实现的),其实最重要的是 C++的流能更好的支持自定义类型对象的输入输出。
  • cout/cin/endl等都属于C++标准库,C++标准库都放在⼀个叫std(standard)的命名空间中,所以要通过命名空间的使用方式去用他们。
  • ⼀般日常练习中我们可以using namespace std,实际项目开发中不建议using namespace std。
  • 下面例子我们没有包含<stdio.h>,也可以使⽤printf和scanf,在包含<iostream>间接包含了。vs系列编译器是这样的,其他编译器可能会报错。

#include <iostream>
using namespace std;
int main()
{int a = 0;double b = 0.1;char c = 'x';cout << a << " " << b << " " << c << endl;std::cout << a << " " << b << " " << c << std::endl;scanf("%d%lf", &a, &b);printf("%d %lf\n", a, b);// 可以⾃动识别变量的类型cin >> a;cin >> b >> c;cout << a << endl;cout << b << " " << c << endl;return 0;
}

在上面例子中,我们使用cin和cout来输入和输出变量,可以不用指定变量的类型了,因为c++自动的识别变量的类型,比c语言方便很多。

二、函数的缺省参数

  • 缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参,缺省参数分为全缺省和半缺省参数。(有些地⽅把缺省参数也叫默认参数)
  • 全缺省就是全部形参给缺省值,半缺省就是部分形参给缺省值。C++规定半缺省参数必须从右往左依次连续缺省,不能间隔跳跃给缺省值。
  • 带缺省参数的函数调用,C++规定必须从左到右依次给实参,不能跳跃给实参。
  • 函数声明和定义分离时,缺省参数不能在函数声明和定义中同时出现,规定必须函数声明给缺省值。

如下所示:

#include <iostream>
using namespace std;
void Func(int a = 0)
{cout << a << endl;
}
int main()
{Func(); // 没有传参时,使⽤参数的默认值Func(10); // 传参时,使⽤指定的实参return 0;
}

当我们没有给Func传入参数时,就会使用参数的默认值,当我们给Func传入参数时,就会使用我们传入的参数。

全缺省例子如下:

#include <iostream>
using namespace std;
// 全缺省
void Func1(int a = 10, int b = 20)
{cout << "a = " << a << endl;cout << "b = " << b << endl;
}
int main()
{Func1();Func1(1);Func1(1,2);return 0;
}

当我们不传入参数调用Func1是,a和b都会使用默认值。

当我们传入一个参数时,第一个位置的a会使用我们传入的参数,b是默认值。必须从左到右依次给实参,不能跳跃给实参。

当我们传入两个参数时,a和b会依次读取我们传入的参数。

半缺省例子如下:

#include <iostream>
using namespace std;
// 半缺省
void Func1(int a, int b = 20)
{cout << "a = " << a << endl;cout << "b = " << b << endl;
}
int main()
{Func1(1);Func1(1,2);return 0;
}

我们想要调用Func1时,可以传入一个参数,也可以传入两个参数。

当我们传入一个参数时,a会读取这个参数,b是默认值。

当我们传入两个参数时,a和b会依次读取我们传入的参数。

半缺省参数必须从右往左依次连续缺省,不能间隔跳跃给缺省值。

http://www.dtcms.com/a/616151.html

相关文章:

  • 手机上如何制作网站仿照别人的网站做违法吗
  • 网站被host重定向是什么意思织梦网站程序安装教程
  • dw简述网站开发流程网站制作易捷网络
  • 现在哪个网站做电商好中国网是什么级别的媒体
  • 婚纱摄影 网站关键词 优化公司邮箱签名模板
  • 门户网站建站多少钱wordpress插件支付宝积分
  • 江门市网站建设网站 预算
  • 深圳外贸公司网站建设公司排名韩国女排出线
  • 装饰网站的业务员都是怎么做的怎么增加网站的关键词库
  • ps个人网站制作流程做商城网站需要备案什么域名
  • 浙江网站建设推广公司十大排行wordpress自动水印代码
  • 找深圳网站建设广告设计经典108例
  • 张家港做网站排名常用的网站语言
  • 做行业门户网站注意什么网站建设下坡路
  • 威海做网站的哪家好吉林网站建设制作
  • 网站维护的具体问题在网上怎么赚钱快
  • 建设网站个人银行网站运营专员做六休一
  • 电子上网站建设与维护旅游网站开发网站设计报告书
  • 静态网站开发与实施的论文公司网站域名是什么
  • 大美工设计网站官网推荐wordpress主题xiu
  • 电子商务网站的建设与规划论文洛阳专业网站设计开发制作建站公司
  • 南充市建设局官方网站万和城网站
  • 公司网站制作与维护新建网站怎样绑定域名
  • 家庭路由器建个人网站网站建设如何商谈
  • 做电子商务网站注册哪一类商标做网站过程用文件
  • 牙科医院网站设计怎么做网站打不开怎么做
  • 面向服务的关系建设网站wordpress导航菜单加小图标
  • 网站备案 流程学校微网站模板下载地址
  • 营销网站seo推广网站模版asp
  • 易缴缴:注册资金实缴领域的卓越典范