函数重载,函数模板,setw,showpoint,precision,sprintf的用法

【摘要】 前言:
本文用于巩固自己最近的学习,内容出自书中
学习目标:
1:sprint函数使用
2:setw,precision,fixed,showpoint使用
3:函数模板使用
4:函数重载使用
1>:sprintf使用
功能: 函数sprintf()用来作格式化的输出。 用法1: 此函数调用方式为sprintf(char *string,char for…

前言:

本文用于巩固自己最近的学习,内容出自书中

学习目标:

1:sprint函数使用

2:setw,precision,fixed,showpoint使用

3:函数模板使用

4:函数重载使用

1>:sprintf使用

功能: 函数sprintf()用来作格式化的输出。
用法1: 此函数调用方式为sprintf(char *string,char format,arg_list);
sprintf的作用是将一个格式化的字符串输出到一个目的字符串中。
sprintf((char
)p,“收到字节,内容如下”,);//接收到的字节数
上述例子可以将“收到字节,内容如下”放入到指针p中,之后便可以用p代表该段文字用于打印。
用法2: 此函数调用方式为sprintf(char *string,char format,arg_list,int x);
sprintf((char
)p,“收到%d字节,内容如下”,rlen);//接收到的字节数 ,该函数和printf一样也可以带一个参数,比如rlen=5,则有p==收到5字节,内容如下。
在STM32的用法可以用于LCD屏幕上内容的打印

2>:setw,precision,fixed,showpoint使用

1:setw(int x)用于将下一个参数的输出占格设置为x,默认为右对齐,列如:

int x=6;
cout<<setw(5)<<x<<endl;

输出结果为:
(空格)(空格)(空格)(空格) 6 //可以看到前面有4个空格
(空格)(空格) 255 //可以看到前面有2个空格
添加链接描述

2:precision用法
使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。
如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。
通常用法:
cout<<fixed;
cout<<precision(2)
通过上面两行则之后输出的小数位数为2
添加链接描述
3:函数模板
作用:可以使用泛型来定义函数,其中泛型可用具体的类型如(int或double等)替换
定义:由于模板允许以泛型来边写,因此也叫通用编程。
现在建立一个简单的函数模板:

template <typename anytype>
void swap(anytype a,anytype b)
{
	anytype temp;
	temp=a;
	a=b;
	b=temp;
}

  
 

第一行指出,要建立一个模板,并将类型名命名为anytype,关键字template和typename是必须的,同时也必须用尖括号,也可以使用class代替anytype。这里anytype可以用复合标识符命名的标识符代替。通常用T。
添加链接描述
主要讲函数模板具体化
struct job{
char name [ 40];
double salary;
cha
int floor;}

另外,假设希望能够交换两个这种结构的内容。
temp = a;
a = b;
b= temp;
由于C++允许将一个结构赋给另一个结构,因此即使T是一个job结构,上述代码也是用。
设只想交换 salary和 floor 成员,而不叫唤name成员,则需要使用不同的代码,但是swap()的参数将保持不变,因此无法使用模板重载来提供其他的代码。
然而、可以提供一个具体化函数定义——称为显式具体化。其中包含所需的代码,当编译器找到和函数调用匹配的具体化定义时,将使用该定义,而不再寻找模板。
具体化机制随着C++的演变而不断变化。下面介绍C++标准定义的形式。1第三代具体化(ISO/ANSI C++标准)
试验其他具体化方法后,C++98标准选择了下面的方法。
对于给定的函数名,可以有非模板函数、模板函数和显式具体化模板函数以及它们的重载版本显式具体化的原型和定义应以 template◇打头,并通过名称来指出类型。
具体化优先于常规模板,而非模板函数优先于具体化和常规模板
下面是用于交换job结构的非模板函数,函数模板和具体化的原型:
void swap (job &,job &);
template ;
void (T &, T &);
template <>void swap (job &,job &)
如果有多个原 型,则编译器选择原型时,非模板版本优先于显式具体化和模板版本,而显示具体化优先于使用模板生成的版本。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
以上是C++ PREMER PLUS的内容。

4>:函数重载使用(懒得写了,直接贴书在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
发文章只不过是为了记录自己学习的过程以及以后回来复习的时候知道那些是我所认为的重点。

文章来源: blog.csdn.net,作者:Zhangsama1,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Zhangsama1/article/details/115936174

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享