c++输出lpbyte类型_C语言拓展第六期:格式化输出

前边我们学习了不同种类的数据类型,为了将这些数据输出到终端我们学习了printf函数。但前边的学习更多的是简单的套用,并没有理解printf语句里每个部分的含义。于是我们有了今天的学习内容——C语言的格式化输出。在学习了本节内容后,你就可以按照自己的想法来输出各种格式的语句了。

f15980706be8591eebbcb33c2fc2d46e.png

printf函数是一个“可变参数函数” 也就是说printf函数的参数的个数和类型都是可变的,每一个参数的输出格式都有属于自己的格式声明。格式声明由“%”和格式字符组成,如“%d、%f”等,其作用是将输出的数据转换为指定的格式然后输出。

printf("%d\n",5);

0ec4ccc07f3886c52440e21866f7b384.png

“5”意为输出的数据为5,%d为以十进制整数形式输出,执行‘\n’使输出控制移到下一行的开头。其中"%d\n"称为格式控制字符串,由“格式声明”和“普通字符”组成。普通字符是指在输出时需要在输出的时候原样输出的字符。

printf("单词car中的字母的数量为     %d  \n",3);

4f2af942ffa30567bc062dc0108b268f.png

“单词car中的字母的数量为      %d  \n”这里边的汉字和空格、换行符等就属于普通字符。“,”后面的部分叫做“输出表列”,输出表列中是程序需要的一些数据,可以是变量、常量或表达式。要想将“输出表列”中的参数进行输出,格式控制字符串中必然有一个格式声明与之对应,第一个格式声明对应第一个参数、第二个格式声明对应第二个参数、以此类推。

在C的学习过程中我们可能不仅仅会看到%d、%f、%c,还可能看到%e、%o、%x、%12d等等一系列奇怪的格式声明。它们究竟代表什么意思?

%d 表示十进制、有符号的形式输出 int 类型的整数。
printf("%d\n%d\n",5,-16);
f648d29a2ed88da88c56a87fb4c738eb.png %u 表示十进制、无符号的形式输出 int 类型的整数。
printf("%u\n%u\n",5,-16);

f1c4fe108cbd206441284dd29c13765d.png

这时我们发现在输入为正数的时候程序正常输出正数,但是在输入为负数的时候,输出变为了一个十分奇怪的数。它似乎是一个随机产生的很大的数。其实不然,多次试验过后你会发现——如果是-x的话,输出 4294967496-x。在学习了补码等相关知识后就会明白为什么会输出这样一个数了,现在我们先知道结果就好了。我们已经尝试了不按照格式随意输入数据,得到的结果与我们预期相差甚远。有了这次的教训我们以后一定要在输入输出的时候注意——格式声明要和参数相对应。

对于整型数据:

%hd、%d、%ld 分别表示以十进制、有符号的形式输出 short、int、long 类型的整数。

 %hu、%u、%lu 分别表示以十进制、无符号的形式输出 short、int、long 类型的整数

对于字符型数据:

%c用来表示一个字符

printf("%c\n",'A');

1af2ae911664e701f9474e6eb4cb0a6d.png

有些比较调皮的同学可能还会用一些不符合要求的输入数据去尝试,来观察电脑的反映。这时候如果你去输入一个整数,比如“36”和“122”。

       printf("%c\n%c\n",36,122);

5d7d4ebb62b19e94d58b68787125a722.png

这时候你会发现输入的是数字,输出的却可能是字母或符号。这是因为如果输入的整数在0~127范围内,输出时系统会将该数作为ASCII码转换成相应的字符。如果整数比较大,则把它的最后一个字节的信息以字符形式输出。

printf("%c\n%c\n",121,377);

ba1379f4da314a8cbd73b9240be5bd7f.png

以%c格式输出时,只考虑一个字节,377的最后一个字节中的信息是01111001,即十进制的121,这也是“y”的ASCII代码。

想了解更多关于 ASCII 的内容,这里我们引用了百度百科的内容: https://baike.baidu.com/item/ASCII/309296?fromtitle=ascii %E 7%A0%8 1%E8%A1%A8&fromid=19660475&fr=aladdin 除了以上两种格式符之外还有很多对应其他数据格式的格式符, %s——用来输出一个字符串
    printf("%s\n","FUNQU KE TANG");

70b9add072758a65714a08c6e3462aac.png

%f——用来输出实数
    printf("%f\n",5.0);

c30923c385563e87636f5c4dba243df6.png

这里输出的数据不指定长度,实数部分全部输出,小数部分只输出6位。

如果想更改小数的位数,可以通过在“%.n”的方式来更改。

  printf("%.3f\n",56.7896);

58809e561c2fd8bcb003021f84dd3e65.png

这里的n就是保留小数的位数,保留的时候对后边的数据采取四舍五入的保留方法。

如果想对数据的宽度做出调整呢,只需要按照“%m.n”的格式来输入格式符就可以了,其中m是数据的宽度,也就是列数,n依旧是保留小数的位数。我们举个例子大家就明白了。

   printf("%10.2f\n",213.5);

32ba0d84056d71c313ea7916328789ce.png

“2”的前边还有四个“空格”。这里我们看到输出结果是右对齐的,在程序中默认的输出结果是右对齐的,如果想要左对齐只需要在“m”前边加上个“-”。

printf("%-10.2f\n",213.5);

fc9d87a3f31b5ac012c82b0a1de26c49.png

加上“-”也就是减号后数据就左对齐了。相应的“+”是右对齐,但是由于默认的也是右对齐,我们一般就将这个“+”省略了。

    printf("%+10.2f\n",213.5);

这时的结果是这样的。

c0ab097dc34e6b5755fdaa43a4a46914.png

最后一个我们要介绍的是使用科学计数法来输出数据。格式也很简单“%e”或“%E”两者唯一的区别就是输出时表示科学计数法中的“e”是大写还是小写。

printf("%E\n",213.5);

2f32492a1080dff67c9825831d23dfdc.png

printf("%e\n",213.5);

39264581875456217d2152b08b33c550.png

其他的格式符还有诸如八进制的“%o”、十六进制的“%x”等使用方式和上面介绍的差不多,理解其原理之后,稍稍修改一下代码便可以轻松使用。我们这里便不再一一赘述了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值