【C语言篇】详细解释:转换字符%d和–d前面加不同数字时的意义和作用

勤奋不是嘴上说说而已,而是实际的行动,在勤奋的苦度中持之以恒,永不退却。业精于勤,荒于嬉;行成于思,毁于随。在人生的仕途上,我们毫不迟疑地选择勤奋,她是几乎于世界上一切成就的催产婆。只要我们拥着勤奋去思考,拥着勤奋的手去耕耘,用抱勤奋的心去对待工作,浪迹红尘而坚韧不拔,那么,我们的生命就会绽放火花,让人生的时光更加的闪亮而精彩。

导读:本篇文章讲解 【C语言篇】详细解释:转换字符%d和–d前面加不同数字时的意义和作用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

🙇‍♀️写在前面的话:
这个文章主要讲解%d的用法,会由两个题目引入,进而分析和总结%d的d前面加不同数字(整数、小数)情况下的用法和作用。


🌎引入–2个题目:

题目1:

在这里插入图片描述

#define _CRT_SECURE_NO_WARNINGS 1

int main()
{
	int x = 0;
	float y = 0;

	scanf("%3d%f", &x, &y);
	printf("%d %f\n", x, y);


	return 0;
}

这个题目的结果是C:123
在这里插入图片描述

题目2:

在这里插入图片描述

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int main()
{
	int a = 1234;
	printf("%2d\n", a);

	return 0;
}

这个题目的答案是A:1234
在这里插入图片描述

对比:

当时,我和 一位同学对这两个题目的疑问是:第二个题目不应该输出结果是“12”吗。因为根据我们之前对%d浅显的理解是:d前面加整数,限制了输出字符数量,换句话来说,限制了在屏幕上输出的宽度。
其实,要弄清楚这个问题,要明白以下几点:
🅰:d前面的整数和实际字符数的大小关系。

🅱:经过格式化修饰的%d是在scanf函数内还是在printf函数


·第一个题目中,%d前面的数字3是小于实际字符数的,而且%3d是存在与输入函数scanf函数内的。
那么%d前面的整数,限制了编译器读取整数的字符数量(只从左向右读取三个整数字符)。
所以,x的值是123(为12345的前三个字符)
🆚
·第二个题目中,%d前面的数字2也是小于实际字符数的,而且%2d是存在于输出函数printf函数内的。
那么%d前面的整数,限制了输出在屏幕上的字符数量(宽度)
但是注意:❗❗❗
2是小于4的,按理来说应该应该输出2对吧?其实不然。
printf函数内%d格式化修饰时,并不是所有时候都能发挥作用,只有当d前面的数字是大于实际字符数时,才“发挥作用“(右对齐,左边补空格,这个下面会详细演示和讲解)。
在printf函数内:当d前面的整数小于实际字符数时,d前面的数字表示至少输出这么多个字符(并不是至多)。
所以,输出的结果是1234,而不是12.

💦分析d前加数字不同情况时的意义

这里用代码演示一下
🅰:printf函数内存在%md时
m<实际字符数时:是至少输出m个,不是表示只能输入m个!!!(这个时候m其实不发挥作用)
在这里插入图片描述
m>实际字符数时:
在这里插入图片描述
🅱:scanf函数内存在%md时:
m<实际字符数时:这个表示的才是至多(编译器至多读取m个字符)。
在这里插入图片描述
m>实际字符数时:因为表示的是至多,所以这个其实也不会发挥作用。
在这里插入图片描述

🌇总结:

1,⭐%d前面加整数(%md)

·scanf(输入)内:

1,m>实际字符数
m不发挥作用,无影响
2,m<实际字符数(至多读取m个
m发挥作用,编译器从左向右读取m个数字字符

·printf(输出)内:

1,m>实际字符数
m发挥作用,在屏幕上输出字符的宽度为m个字符,并且右对齐(如果m为负整数,那么左对齐,右边填充空格),不够的话左边补空格。
2,m<实际字符数(至少输出m个
m不发挥作用(有没有m都一样)。

2,补充:⭐%d前面加小数

假设:(%m.nd)
printf内:
右对齐,占m个字符空间(空格填充),n个有效数字(不足填0)
eg:
在这里插入图片描述


写在后面的话:
这篇是通过学习、请教他人,再加上经过自己的一些反思和理解,整理而写成的。其中可能有一些不准确的地方或者理解不深入的地方,还请大家多多指正!希望能对大家遇到相似问题时有所帮助!😉

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/142482.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!