Printf格式

合集下载

c语言的printf函数

c语言的printf函数

c语言的printf函数
printf函数是C语言中的一个非常重要的函数,用于向屏幕输
出数据。

它的语法格式为:
printf('格式控制字符串', 参数列表);
其中,格式控制字符串用于指定输出的格式,参数列表则是需要输出的数据。

在格式控制字符串中,使用特定的占位符来表示不同的数据类型。

例如,%d表示输出整数,%f表示输出浮点数,%c表示输出字符等等。

在参数列表中,需要按照格式控制字符串中占位符的顺序,依次传入相应的数据。

除了简单的输出数据外,printf函数还支持格式化输出、对齐
等丰富的功能。

例如,可以通过指定输出宽度、精度、填充字符等来控制输出的格式。

总的来说,printf函数是C语言中非常基础和重要的一个函数,掌握它的使用方法和一些高级功能,对于C语言程序员来说是必不可少的。

- 1 -。

C++printf()输出格式

C++printf()输出格式

C++printf()输出格式1. 调⽤格式1 printf("<格式化字符串>",<参量表>); 其中格式化字符串包括两部分内容: ⼀部分是正常字符, 这些字符将按原样输出; 另⼀部分是格式化规定字符, 以"%"开始, 后跟⼀个或⼏个规定字符, ⽤来确定输出内容格式。

参量表是需要输出的⼀系列参数, 其个数必须与格式化字符串所说明的输出参数个数⼀样多, 各参数之间⽤","分开, 且顺序⼀⼀对应,2. 格式化字符%d ⼗进制有符号整数%u ⼗进制⽆符号整数%f 浮点数%s 字符串%c 单个字符%p 指针的值%e 指数形式的浮点数%x, %X ⽆符号以⼗六进制表⽰的整数%0 ⽆符号以⼋进制表⽰的整数%g ⾃动选择合适的表⽰法说明:1. 可以在"%"和字母之间插进数字表⽰最⼤场宽。

例如:%3d 表⽰输出3位整型数, 不够3位右对齐。

%9.2f 表⽰输出场宽为9的浮点数, 其中⼩数位为2, 整数位为6, ⼩数点占⼀位, 不够9位右对齐,超过9位,按实际输出。

%8s 表⽰输出8个字符的字符串, 不够8个字符右对齐。

%04d 表⽰在输出⼀个⼩于4位的数值时, 将在前⾯补0使其总宽度为4位。

%6.9s 表⽰显⽰⼀个长度不⼩于6且不⼤于9的字符串。

若⼤于9, 则第9个字符以后的内容将被删除。

2. 可以在"%"和字母之间加⼩写字母 l, 表⽰输出的是长型数。

例如: %ld 表⽰输出long整数, %lf 表⽰输出double浮点数。

3. 可以控制输出左对齐或右对齐,即在"%"和字母之间加⼊⼀个"-" 号可说明输出为左对齐, 否则为右对齐。

例如: %-7d 表⽰输出7位整数左对齐,%-10s 表⽰输出10个字符左对齐。

3. 特殊规定字符\n 换⾏\f 清屏并换页\r 回车\t Tab符\xhh 表⽰⼀个ASCII码⽤16进表⽰,其中hh是1到2个16进制数。

printf()格式化输出详解

printf()格式化输出详解

print‎f的格式控‎制的完整格‎式:%‎- 0 ‎m.n l‎或h 格式‎字符下‎面对组成格‎式说明的各‎项加以说明‎:①%‎:表示格式‎说明的起始‎符号,不可‎缺少。

‎②-:有-‎表示左对齐‎输出,如省‎略表示右对‎齐输出。

‎③0:有‎0表示指定‎空位填0,‎如省略表示‎指定空位不‎填。

④‎m.n:m‎指域宽,即‎对应的输出‎项在输出设‎备上所占的‎字符数。

N‎指精度。

用‎于说明输出‎的实型数的‎小数位数。

‎对数值型的‎来说,未指‎定n时,隐‎含的精度为‎n=6位‎。

⑤l‎或h:l对‎整型指lo‎n g型,对‎实型指do‎u ble型‎。

h用于将‎整型的格式‎字符修正为‎s hort‎型。

‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎----‎格式字符‎格式字‎符用以指定‎输出项的数‎据类型和输‎出格式。

‎①d格式‎:用来输出‎十进制整数‎。

有以下几‎种用法:‎%d:按‎整型数据的‎实际长度输‎出。

%‎m d:m为‎指定的输出‎字段的宽度‎。

如果数据‎的位数小于‎m,则左端‎补以空格,‎若大于m,‎则按实际位‎数输出。

‎%ld:‎输出长整型‎数据。

‎②o格式‎:以无符号‎八进制形式‎输出整数。

‎对长整型可‎以用"%l‎o"格式输‎出。

同样也‎可以指定字‎段宽度用“‎%mo”格‎式输出。

‎例:‎m ain(‎){ ‎i nt a‎= -1‎;pr‎i ntf(‎"%d, ‎%o", ‎a, a)‎;} ‎运行结果‎:-1,1‎77777‎程序解‎析:-1在‎内存单元中‎(以补码形‎式存放)为‎(1111‎11111‎11111‎11)2,‎转换为八进‎制数为(1‎77777‎)8。

‎③x格式‎:以无符号‎十六进制形‎式输出整数‎。

对长整型‎可以用"%‎l x"格式‎输出。

同样‎也可以指定‎字段宽度用‎"%mx"‎格式输出。

Printf函数允许使用的格式字符(printf格式代码)

Printf函数允许使用的格式字符(printf格式代码)

Printf函数允许使用的格式字符格式字符名称格式说明符说明
d格式符%d 以有符号
十进制形
式输出整
数按整型数据的实际长度输出
%md 按照指定字段宽度m输出。

若数据位数小于m,
则左端补空格;若数据位数不小于m,则按实际
位数输出
%ld 按长整型数据的实际长度输出
%mld 按指定字段宽度m输出长整型数据,具体同第二
行md说明
u格式符%u 以无符号十进制形式输出整数。

按数据的实际长度输出
o格式符%o 以无符号八进制形式输出整数(不输出前导符0)。

按数据的
实际长度输出
x格式符%x(或%X) 以无符号十六进制形式输出整数(不输出前导符0x)。

按数
据的实际长度输出
c格式符%c 输出一个字符
s格式符%s 输出字符串,不输出字符串结束符号“\0”
f格式符%f 以有符号
小数形式
输出单、
双精度实
数输出时整数部分全部输出,并输出6位小数
%m.nf 输出时数据位数占m列,其中n位小数。

如数据
位数<m,则左端补空格,靠右对齐
%-m.nf 输出时数据位数占m列,其中n位小数。

如数据
位数<m,则右端补空格,靠右对齐
e格式符%e(或%E) 以指数形
式输出实
数输出时小数部分占6位(小数点前有且仅有一位非零数字),指数部分占5位(其中e和指数符号各占一位,指数占3位,如e++002),共13位
%m.ne -、m、n含义同前。

n指数字部分的小数位数
%-m.ne
g格式符%g(或%G) 由系统决定选用%f或%e格式,以便输出宽度最小。

c语言printf()输出格式大全

c语言printf()输出格式大全

c 语言printf() 输出格式大全1 •转换说明符" e.g. "% 6.2f"# :对c,s,d,u 类无影响;对o 类,在输出时加前缀o ;对x 类, 在输出时加前缀Ox ;对e,g,f类当结果有小数时才给出小数点。

3.格式字符串(格式)[标志][输出最少宽度][.精度][长度]类型 "%-md":左对齐,若m 比实际少时,按实际输出。

"%m.ns":输出m 位,取字符串(左起)n 位,左补空格,当n>m or m省略时m=ne.g."%7.2s"输%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)%c 字符%d 有符号十进制整数%f 浮点数(包括float 和 doulbe)%e(%E) 浮点数指数输出[e-(E-)记数法]%g(%G) 浮点数不显无意义的零"0"%i 有符号十进制整数 (与%d 相同)%u 无符号十进制整数%o 八进制整g. 0123%x(%X) 十六进制整数0f(0F)e.g.0x1234%p 指针%s 字符串%% "%"左对齐: "-" e.g. "%-20s"右对齐:"+" e.g."%+20s"2.标志入CHINACH"输出%m.nf":输出浮点数,m为宽度,n为小数点右边数位e.g. "%3.1f"输入3852.99输出3853.0长度:为h短整形量,1为长整形量printf的格式控制的完整格式:% - 0 m.n I或h格式字符下面对组成格式说明的各项加以说明:①%表示格式说明的起始符号,不可缺少。

②-:有-表示左对齐输出,如省略表示右对齐输出。

③0:有0表示指定空位填0,如省略表示指定空位不填。

printf格式字符串

printf格式字符串
x/X 使用abcdef,而X约定使用ABCDEF。
f double 参数按照常规的浮点数格式打印。缺省精度为6
s char* 打印一个字符串
% 无 打印一个%字符
n int* 这个代码是独特的,它不产生任何输出。相反,到目前为止函数所输出的字符数目将被保存到对应的参数中
如果精度字段大于最小字段宽度值则字段宽度无效;
如果值为0且精度也为0,则转换结果就不会产生数字。
f 精度字段决定将出现在小数点之后的数字位数。
当使用s类型的转换时,精度指定将被转换的最多字符数。
格式字符串是由普通字符和格式代码组成。
格式代码 = % + (0至多个标志字符) + (最小字段宽度)+ (精度) + (修改符)+ 转换类型
小端字节序:针对类型而言,int的4个字节,低位字节存放在低地址
大端字节序:针对类型而言,int的4个字节,高位字节存放在低地址
转换类型:
printf("%c", 'c'); 'c'先转化为int然后再裁剪为unsigned char类型并作为字符打印。
[%#X] 49 [0X31]
[%#2X] 49 [0X31]
[%#3X] 49 [0X31]
当值非负时,这个标志把一个空格添加到它的开始位置。注意这个标志和正号标志是相互排斥的,如果两个同时给出,空
格标志便被忽略。
# 指定某些代码的另一种输出形式,详情:
用于... #标志
o 保证产生的值以一个零开头
printf("%f\n", (double)x); 结果:123.000000

c++ printf 基本用法举例

c++ printf 基本用法举例

c++ printf 基本用法举例printf是C语言中的一个重要函数,用于在控制台上输出格式化的字符串。

通过printf函数,我们可以方便地输出各种类型的数据,包括整数、浮点数、字符、字符串等。

下面我们将介绍printf函数的常用用法和举例。

一、printf函数的定义和基本用法printf函数的定义格式为:printf(“格式控制符”,“输出参数1”,“输出参数2”...)。

其中,“格式控制符”用于指定输出的格式和类型,而“输出参数”则是需要输出的数据。

基本用法示例:```c#include<stdio.h>intmain(){printf("Hello,world!\n");printf("Thevalueofxis:%d\n",x);printf("Theresultis:%.2f\n",result);return0;}```上述示例中,我们输出了三个字符串和一个浮点数。

第一个字符串直接输出,后面两个字符串使用了格式控制符。

%d表示输出一个整数,%.2f表示输出一个浮点数并保留两位小数。

二、printf函数的常用格式控制符printf函数支持多种格式控制符,包括:%d、%f、%s、\n、\%、\%、^等。

下面我们将介绍一些常用的格式控制符及其用法。

1.%d:输出一个整数。

2.%f:输出一个浮点数。

3.%s:输出一个字符串。

4.\n:换行符。

5.\%:转义字符,输出一个百分号%。

6.\:转义字符,输出一个反斜杠\。

7.^:输出上箭头字符^。

常用格式控制符用法示例:```c#include<stdio.h>intmain(){inta=10;floatb=20.5;charc[]="Hello,world!";printf("a=%d\n",a);//输出整数a的值。

printf("b=%.2f\n",b);//输出浮点数b的值并保留两位小数。

printf函数中常用的格式说明

printf函数中常用的格式说明

3.2.2 printf函数中常用的格式说明格式控制中,每个格式说明都必须用“%”开头,以一个格式字符作为结束,在此之间可以根据需要插入“宽度说明”、左对齐符号“-”、前导零符号“0"等。

1.格式字符%后允许使用的格式字符和它们的功能如表3.1所示。

在某些系统中,可能不允许使用大写字母的格式字符,因此为了使程序具有通用性,在写程序时应尽量不用大写字母的格式字符。

2.长度修饰符在%和格式字符之间,可以加入长度修饰符,以保证数据输出格式的正确和对齐。

对于长整型数(long)应该加l,即%ld;对于短整型数(short)可以加h,即%hd。

3.输出数据所占的宽度说明当使用%d,%c,%f,%e,%s,…的格式说明时,输出数据所占的宽度(域宽)由系统决定,通常按照数据本身的实际宽度输出,前后不加空格,并采用右对齐的形式。

也可以用以下三种方法人为控制输出数据所占的宽度(域宽),按照使用者的意愿进行输出。

(1)在%和格式字符之间插入一个整数常数来指定输出的宽度n(例如%4d,n代表整数4)。

如果指定的宽度n不够,输出时将会自动突破,保证数据完整输出。

如果指定的宽度n超过输出数据的实际宽度,输出时将会右对齐,左边补以空格,达到指定的宽度。

(2)对于float和double类型的实数,可以用“n1.n2”的形式来指定输出宽度(n1和n2分别代表一个整常数),其中n1指定输出数据的宽度(包括小数点),n2指定小数点后小数位的位数,n2也称为精度(例如%12.4f,n1代表整数12 ,n2代表整数4)。

对于f,e或E,当输出数据的小数位多于n2位时,截去右边多余的小数,并对截去部分的第一位小数做四舍五入处理;当输出数据的小数位少于n2时,在小数的最右边补0,使得输出数据的小数部分宽度为n2。

若给出的总宽度n1小于n2加上整数位数和小数点(e或E 格式还要加上指数的5位),则自动突破n1的限制;反之,数字右对齐,左边补空格。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

printf()格式printf()格式转换的一般形式如下%(flags)(width)(.prec)type以括号括起来的参数为选择性参数,而%与type则是必要的。

底下先介绍type的几种形式%d 整数的参数会被转成一有符号的十进制数字%u 整数的参数会被转成一无符号的十进制数字%o 整数的参数会被转成一无符号的八进制数字%x 整数的参数会被转成一无符号的十六进制数字,并以小写abcdef表示%X 整数的参数会被转成一无符号的十六进制数字,并以大写ABCDEF表示浮点型数%f double 型的参数会被转成十进制数字,并取到小数点以下六位,四舍五入。

%e double型的参数以指数形式打印,有一个数字会在小数点前,六位数字在小数点后,而在指数部分会以小写的e来表示。

%E 与%e作用相同,唯一区别是指数部分将以大写的E 来表示。

%g double 型的参数会自动选择以%f 或%e 的格式来打印,其标准是根据欲打印的数值及所设置的有效位数来决定。

%G 与%g 作用相同,唯一区别在以指数形态打印时会选择%E 格式。

字符及字符串%c 整型数的参数会被转成unsigned char型打印出。

%s 指向字符串的参数会被逐字输出,直到出现NULL字符为止%p 如果是参数是“void*”型指针则使用十六进制格式显示。

prec 有几种情况1. 正整数的最小位数。

2. 在浮点型数中代表小数位数3. 在%g 格式代表有效位数的最大值。

4. 在%s格式代表字符串的最大长度。

5. 若为*符号则代表下个参数值为最大长度。

width为参数的最小长度,若此栏并非数值,而是*符号,则表示以下一个参数当做参数长度。

flags 有下列几种情况+ 一般在打印负数时,printf()会加印一个负号,此旗标会使得在打印正数前多一个正号(+)。

# 此旗标会根据其后转换字符的不同而有不同含义。

当在类型为o 之前(如%#o),则会在打印八进制数值前多印一个0(表示是八进制)。

而在类型为x 之前(%#x)则会在打印十六进制数前多印’0x’,在型态为e、E、f、g或G 之前则会强迫数值打印小数点。

在类型为g 或G之前时则同时保留小数点及小数位数末尾的零。

0 当有指定参数时,无数字的参数将补上0。

默认是关闭此旗标,所以一般会打印出空白字符最近在重温C语言,发现很多以前一知半解的知识点,找出来,转载一篇解释得很仔细的文章。

printf 格式输出关键词:printf%S A ABC ABCDEFGH%5S####A##ABC ABCDEFGH%.5S A ABC ABCDE%5.5S####A##ABC ABCDE%-5S A####ABC##ABCDEFGHPrintf 格式化字符串1-1212345123456789%d1-1212345123456789%6d#####1###-12#12345123456789%.4d0001-001212345123456789%6.4d##0001#-0012#12345123456789%-4d1####-12#12345123456789%04d0001-01212345123456789%+d+1-12+12345+123456789Printf格式化整型数值1.01.0001234512345.6789%f 1.0000000.0100000.00012312345.678900 %10.2d######1.00#####0.01######0.00##12345.67%e 1.000000e+001.000000e-021.234500e-041.234568e+04 %.4e 1.0000e+00 1.0000e-02 1.2345e-04 1.2346e+04%g10.010.0001234512345.76.023e23%f60229999999999975882752.000000%10.2e60229999999999975882752.00%e 6.023000e+23%.4e 6.0230e+23%g 6.023e+23Printf格式化浮点值printf()格式转换的一般形式如下%(flags)(width)(.prec)type以中括号括起来的参数为选择性参数,而%与type则是必要的。

底下先介绍type 的几种形式整数%d 整数的参数会被转成一有符号的十进制数字%u 整数的参数会被转成一无符号的十进制数字%o 整数的参数会被转成一无符号的八进制数字%x 整数的参数会被转成一无符号的十六进制数字,并以小写abcdef表示%X 整数的参数会被转成一无符号的十六进制数字,并以大写ABCDEF表示浮点型数%f double 型的参数会被转成十进制数字,并取到小数点以下六位,四舍五入。

%e double型的参数以指数形式打印,有一个数字会在小数点前,六位数字在小数点后,而在指数部分会以小写的e来表示。

%E 与%e作用相同,唯一区别是指数部分将以大写的E 来表示。

%g double 型的参数会自动选择以%f 或%e 的格式来打印,其标准是根据欲打印的数值及所设置的有效位数来决定。

%G 与%g 作用相同,唯一区别在以指数形态打印时会选择%E 格式。

字符及字符串%c 整型数的参数会被转成unsigned char型打印出。

%s 指向字符串的参数会被逐字输出,直到出现NULL字符为止%p 如果是参数是“void *”型指针则使用十六进制格式显示。

prec 有几种情况1. 正整数的最小位数。

2. 在浮点型数中代表小数位数3. 在%g 格式代表有效位数的最大值。

4. 在%s格式代表字符串的最大长度。

5. 若为×符号则代表下个参数值为最大长度。

width为参数的最小长度,若此栏并非数值,而是*符号,则表示以下一个参数当做参数长度。

flags 有下列几种情况#NAME?+ 一般在打印负数时,printf()会加印一个负号,整数则不加任何负号。

此旗标会使得在打印正数前多一个正号(+)。

# 此旗标会根据其后转换字符的不同而有不同含义。

当在类型为o 之前(如%#o),则会在打印八进制数值前多印一个o。

而在类型为x 之前(%#x)则会在打印十六进制数前多印’0x’,在型态为e、E、f、g或G 之前则会强迫数值打印小数点。

在类型为g 或G之前时则同时保留小数点及小数位数末尾的零。

0 当有指定参数时,无数字的参数将补上0。

默认是关闭此旗标,所以一般会打印出空白字符。

printf的格式控制的完整格式:% - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。

②-:有-表示左对齐输出,如省略表示右对齐输出。

③0:有0表示指定空位填0,如省略表示指定空位不填。

④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。

N指精度。

用于说明输出的实型数的小数位数。

为指定n时,隐含的精度为n=6位。

⑤l或h:l对整型指long型,对实型指double型。

h用于将整型的格式字符修正为short型。

---------------------------------------格式字符格式字符用以指定输出项的数据类型和输出格式。

①d格式:用来输出十进制整数。

有以下几种用法:%d:按整型数据的实际长度输出。

%md:m为指定的输出字段的宽度。

如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。

%ld:输出长整型数据。

②o格式:以无符号八进制形式输出整数。

对长整型可以用"%lo"格式输出。

同样也可以指定字段宽度用“%mo”格式输出。

例:main(){ int a = -1;printf("%d, %o", a, a);}运行结果:-1,177777程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为(177777)8。

③x格式:以无符号十六进制形式输出整数。

对长整型可以用"%lx"格式输出。

同样也可以指定字段宽度用"%mx"格式输出。

④u格式:以无符号十进制形式输出整数。

对长整型可以用"%lu"格式输出。

同样也可以指定字段宽度用“%mu”格式输出。

⑤c格式:输出一个字符。

⑥s格式:用来输出一个串。

有几中用法%s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。

%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。

若串长小于m,则左补空格。

%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。

%m.ns:输出占m列,但只取字符串中左端n个字符。

这n个字符输出在m列的右侧,左补空格。

%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。

如果n>m,则自动取n值,即保证n个字符正常输出。

⑦f格式:用来输出实数(包括单、双精度),以小数形式输出。

有以下几种用法:%f:不指定宽度,整数部分全部输出并输出6位小数。

%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。

%-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。

⑧e格式:以指数形式输出实数。

可用以下形式:%e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。

%m.ne和%-m.ne:m、n和”-”字符含义与前相同。

此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。

⑨g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。

---------------------------------------关于printf函数的进一步说明:如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示,如:printf("%f%%", 1.0/3);输出0.333333%。

---------------------------------------对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位.对于双精度数,使用%lf格式符输出时,前16位是有效数字,小数6位.######################################拾遗########################################由高手指点对于m.n的格式还可以用如下方法表示(例)char ch[20];printf("%*.*s\n",m,n,ch);前边的*定义的是总的宽度,后边的定义的是输出的个数。

相关文档
最新文档