%md在printf语句和scanf语句中的区别

简介: %md在printf语句和scanf语句中的区别

1. %md在printf语句

       输出的宽为m位(当我们所给的m值<原本输出的实际宽度,按照原来的宽度输出),也就是说printf语句最少输出宽度也是它原本的宽度,宽度只能大,不能小。

#include <stdio.h>
int main()
{
    int a = 1234;
    printf("1d在打印中表示 %1d\n",a);
    printf("2d在打印中表示 %2d\n",a);
    printf("3d在打印中表示 %3d\n",a);
    printf("4d在打印中表示 %4d\n",a);
    printf("5d在打印中表示 %5d\n",a);
    printf("6d在打印中表示 %6d\n",a);
    return 0;
}


287b3c93b4cd4983b51fff2b2c05a3b0.png

 我们看图中进一步理解,我们给a赋值为1234,那么a的宽度为4,所以在printf输出的时候至少要输出4位。如图,我们令m=1,2,3时候,因为a最开始的宽度就是4,所以只要小于原本宽度的m值,一律默认为原本宽度4。当m=5时,我们要求输出的宽度为5,但是a只有四位1234,这时候就要用空格在前面补一位,保证宽度。


       其实我们不难发现,printf输出的宽度必须是在它原本宽度上增加或者不变。

当我们想用0来填补空格时候就可以在%和md中间加0,%0md,如图:

#include <stdio.h>
int main()
{
    int a = 1234;
    printf("%06d\n",a);
    return 0;
}


f24a934545b946129b763e113859312c.png


在%和6d中间加了个0时候,前面自动补齐0;

2. %md在scanf语句

       %md表示读入的数为m位,超过m位,只读m位,不足m位则按实际位数读入。

#include <stdio.h>
int main()
{
    int a = 0;
    scanf("%1d",&a);
    printf("%d\n",a);
    return 0;
}


0255efbc1af54fbd9d04c7e61704e281.png

如图,我们输入了1234四位,但是我们只想读1位,所以我们令m=1,读1234的1位,也就是1。我们都是从左往右读,以此类推,m=2就是12,m=3就是123。

但是当我们读5位会是什么样的结果呢?我们看下图

#include <stdio.h>
int main()
{
    int a = 0;
    scanf("%5d",&a);
    printf("%d\n",a);
    return 0;
}

c3f725636c9b437c85b1174f0f764d98.png


我们可以发现,当m=5的时候,输出为1234,所以可以得出结论,当m大于我们实际输入的位数,按实际位数读入并输出。 (也就是说,我们的m就是我们想读到的实际输入位数的多少位,位数从左往右数,最左边是第一位,以此类推。)

相关文章
|
2月前
|
程序员 编译器 C语言
用printf函数输出数据
用printf函数输出数据
16 2
|
5月前
|
存储
学习printf的基本用法
学习printf的基本用法
|
10月前
|
C++
VS中出现的printf,scanf等函数不安全而报错的问题的全面解决方法
VS中出现的printf,scanf等函数不安全而报错的问题的全面解决方法
|
2月前
break语句和continue语句的区别
break语句和continue语句的区别
11 0
|
2月前
|
C语言
使用printf函数输出数据
在C语言中,printf函数是一个常用的标准库函数,用于在控制台输出格式化的字符串和数据。它允许我们按照指定的格式输出各种类型的数据,包括整数、浮点数、字符和字符串等。
8 0
|
4月前
|
存储 数据可视化 C#
C# Break 和 Continue 语句以及数组详解
它被用于“跳出” switch 语句。 break 语句也可用于跳出循环。 以下示例在 i 等于 4 时跳出循环: 示例:
58 0
|
4月前
|
数据安全/隐私保护
scanf与getchar连用的注意事项
这里主要讲述scanf函数和getchar函数连续使用的注意事项
35 2
|
5月前
|
安全 C语言 C++
VS中使用scanf函数报错如何解决?
VS中使用scanf函数报错如何解决?
25 0
|
5月前
printf scanf if switch分支语句总结
printf scanf if switch分支语句总结
18 0
|
6月前
|
C语言
printf与scanf函数的返回值
printf与scanf函数的返回值