【C++基础】输入&输出、缺省参数(缺省参数的概念;缺省参数的分类;cin/cout如何自动识别类型?)

本文介绍了C++中的输入输出机制,强调了<iostream>库的作用,指出cin和cout如何自动识别变量类型。此外,还详细讨论了缺省参数的概念,包括全缺省参数和半缺省参数的使用规则,并提醒注意函数声明和定义中缺省参数的处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

三、输入&输出

#include <iostream>
using namespace std;
int main()
{
	int a;
	double b;
	char c;
	// 可以自动识别变量的类型
	cin >> a;
	cin >> b >> c;
	cout << a << endl;
	cout << b << " " << c << endl;
	return 0;
}

3.1 说明

  • 使用cout 标准输出对象(控制台)和cin 标准输入对象(键盘)时,必须包含 < iostream > 头文件以及按命名空间使用方法使用 std
  • cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在< iostream >头文件中。
  • <<是流插入运算符,>>是流提取运算符。

提示:实际上cout和cin分别是ostream和istream类型的对象,>>和<<也涉及运算符重载等知识。

  • 不考虑格式控制,C++的输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。C++的输入输出可以自动识别变量类型。
  • 输入输出格式比较复杂,比如要控制浮点数的输出精度或是要控制字符输出宽度时,建议仍然使用printf/scanf等格式化输入输出函数,比较方便。

提示:C++同C语言一样使用空格或换行符分割输入流

3.2 cin/cout如何自动识别类型?

补充内容:cin/cout如何自动识别类型?


四、缺省参数

4.1 缺省参数概念

缺省参数是在声明或定义函数时为函数的参数指定一个默认值;在调用该函数时,如果缺省该实参则采用该形参的默认值,否则使用指定的实参。

void Func(int a = 0)
{
	cout << a << endl;
}
int main()
{
	Func(); // 没有传参时,使用参数的默认值
	Func(10); // 传参时,使用指定的实参
	return 0;
}
  • C语言不支持(编译器不支持)

  • 给定的默认值必须是常量或者全局变量

  • 缺省参数的默认值不能在函数声明和定义中同时出现,如果有函数声明必须写在声明处。

  • //a.h
    void Func(int a = 10);
    //a.cpp
    void Func(int a = 20){//....}
    
  • 如果声明与定义位置同时出现默认值,恰巧两个位置提供的值不同,那编译器就无法确定到底该用那个缺省值。

4.2 缺省参数的分类

  • 全缺省参数
void Func(int a = 10, int b = 20, int c = 30)
{
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl;
}
int main()
{
	Func(); 
	Func(1);
	Func(1, 2);
	Func(1, 2, 3);
	return 0;
}
  • 半缺省参数
void Func(int a, int b = 10, int c = 20)
{
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl;
}
int main()
{
	//Func(); //没有默认值的参数不能缺省
	Func(1);
	Func(1, 2);
	Func(1, 2, 3);
	return 0;
}

注意:

  • 半缺省参数的默认值必须从右往左依次来给出,不能间隔着给。
  • 同样调用带缺省参数的函数时,也应从左往右连续的传入参数,不能间隔缺省。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

52Hertz_Echo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值