C语言printf格式化打印(%d、%md、%f、%c、%s、%o、%x、%p、%e、%E等)

简介: C语言printf格式化打印(%d、%md、%f、%c、%s、%o、%x、%p、%e、%E等)

一、整型家族的格式化打印形式

我们要记住signed ➕ 类型完全等效与单独的类型

所以我们下面会用(signed)来表示可以省略不写。


  1. (signed)int   (有符号整型)———%d
  2.   unsigned int     (无符号的int类型)———%u


  1. (signed)long   (有符号长整型)———%ld
  2.  unsigned long   (无符号的长类型)———%lu


  1. (signed)long  long(有符号长长整型)———%lld
  2.   unsigned long long    (无符号的长类型)———%llu


  1. (signed)short   (有符号短整型)———%hd
  2. unsigned short    (无符号的长类型)———%hu


  1. 以上类型若是想在printf和scanf中保留相关位数———%md        
    请看本篇文章http://t.csdnimg.cn/i1kNm


1.1 八进制和十六进制的格式化打印:


八进制形式输出无符号整数(不输出前缀0)———%o

八进制数例如
:0123,0234,0345,03等前缀是0的数



十六进制形式输出无符号整数(不输出前缀Ox)———%x , %X

十六进制数例如
:0x11223344,0X11,0x221c等前缀是0x和0X的数



  1. 若想输出前缀要改写成———十六进制:%#x、%#X  
                                                      八进制:
    %#o


 1.2 %i和%d的区别:  


    在C语言中,%i和%d都是格式控制符,用于格式化输出整数类型的变量。

       %d  用于输出有符号的十进制整数。它会将整数按照十进制形式输出,并且如果整数是负数,则会输出一个负号。

       %i  也用于输出有符号的十进制整数。与%d相比,%i可以将八进制数字和十六进制数字转换成十进制数字输出。

二、浮点型家族格式化打印形式(浮点数只有 有符号的类型)


  1. float(有符号的单精度浮点数)———%f      默认保留6位小数
  2. double(有符号的双精度浮点数)———%lf    默认保留15位小数
  3. 在输出中想保留n位小数———%.nf    或者    %.nlf
#include <stdio.h>
int main()
{
    float a = 1.2345;
    printf("%.1f\n",a);
    return 0;
}

这里表示输出的结果保留一位小数,也就是1.2


三、科学计数法格式化打印

   1. 科学计数法表示的浮点数(小写字母)———%e

   2. 科学计数法表示的浮点数(大写字母)———%E


四、字符类型的格式化打印形式

  1. char———%c( 输出单个字符 )

    char———%d输出字符对应的ASICC值
  2. 字符串类型———%s (输出字符串)


若想限制输出字符串中的字符个数,我们用%.ns的格式,表示输出前n个字符

#include <stdio.h>
int main()
{
    char a[50] = "hello world";
    printf("%.7s\n",a);
    return 0;
}

这就代表了输出前7个字符,也就是hello w


五、%ms


m代表的是在屏幕上输出m个字符个数

m 前面没有负号  右对齐

m 前面有负号  左对齐

m <= 字符串长度,打印整个字符串

m > 字符串长度,不够地方用空格填充


1.  m < 字符串长度

#include <stdio.h>
int main() 
{
    printf("%5s,%s","computer","computer");
    return 0;
}


如图,我们是%5s,5是小于字符串长度的,所以打印整个字符串就OK啦

2. m > 字符串长度

#include <stdio.h>
int main() 
{
    printf("%15s,%s","computer","computer");
    return 0;
}

这里是打印15个字符个数,很明显字符串长度小于15,不够的就用空格填充

六、其他的格式化打印形式

1. 打印地址———%p(16进制显示)

相关文章
|
4月前
|
存储 C语言
C语言数据类型、变量和运算符以及printf相关问题
C语言数据类型、变量和运算符以及printf相关问题
|
26天前
|
存储 C语言 开发者
【C语言】格式化输出占位符及其标志字符详解(基于ISO/IEC 9899:2024)
在C语言中,格式化输出通过 `printf` 函数等格式化输出函数来实现。格式说明符(占位符)定义了数据的输出方式,标准ISO/IEC 9899:2024(C23)对这些格式说明符进行了详细规定。本文将详细讲解格式说明符的组成部分,包括标志字符、宽度、精度、长度修饰符和类型字符,并适当增加表格说明。
42 6
|
3月前
|
存储 C语言 数据格式
【C语言基础考研向】03混合运算和printf讲解
本文分为两部分。第一部分介绍了C语言中的混合运算与类型强制转换的重要性,通过实例展示了当整型数进行除法运算且结果为小数时,必须使用类型转换才能正确存储浮点数结果。第二部分详细讲解了`printf`函数的功能与使用方法,包括格式化输出不同类型数据的基本语法,并通过具体示例演示了如何利用字段宽度和对齐方式来控制输出格式,帮助读者更好地理解和掌握输出格式的控制技巧。
56 10
|
2月前
|
C语言
初识C语言:与计算机的交流之输入与输出(scanf和printf)
初识C语言:与计算机的交流之输入与输出(scanf和printf)
251 0
|
3月前
|
C语言
C语言程序设计核心详解 第三章:顺序结构,printf(),scanf()详解
本章介绍顺序结构的基本框架及C语言的标准输入输出。程序从`main()`开始依次执行,框架包括输入、计算和输出三部分。重点讲解了`printf()`与`scanf()`函数:`printf()`用于格式化输出,支持多种占位符;`scanf()`用于格式化输入,需注意普通字符与占位符的区别。此外还介绍了`putchar()`和`getchar()`函数,分别用于输出和接收单个字符。
|
4月前
|
存储 缓存 编译器
【C语言篇】scanf和printf万字超详细介绍(基本加拓展用法)(下篇)
scanf处理⽤⼾输⼊的原理是,⽤⼾的输⼊先放⼊缓存,等到按下回⻋键后,按照占位符对缓存进⾏解读。 解读⽤⼾输⼊时,会从上⼀次解读遗留的第⼀个字符开始,直到读完缓存,或者遇到第⼀个不符合条件的字符为⽌。
194 2
|
4月前
|
存储 C语言
【C语言篇】scanf和printf万字超详细介绍(基本加拓展用法)(上篇)
printf 的作⽤是将参数⽂本输出到屏幕。它名字⾥⾯的 f 代表 format (格式化),表⽰可以定制输出⽂本的格式。
94 1
|
6月前
|
存储 C语言
C语言中的printf函数详解
C语言中的printf函数详解
226 0
|
6月前
|
C语言 C++
C语言printf()函数详解
C语言printf()函数详解
|
7月前
|
编译器 C语言
【C语言】printf() 和 scanf()
【C语言】printf() 和 scanf()