c语言输出格式求输出详解

printf的格式控制的完整格式:
% - 0 m.n l
h 格式芓符下面对组成格式说明的各项加以说明:
①%
:表示格式说明的起始符号不可缺少。
②-
:有-表示左对齐输出如省略表示右对齐输出。
③0
:有0表示指定空位填0,如省略表示指定空位不填
④m.n
m指域宽,即对应的输出项在输出设备上所占的字符数N指精度。用于说明输出的实型数的小数位数为指定n时,隐含的精度为n=6
⑤l
h:l对整型指long型,对实型指doubleh用于将整型的格式字符修正为short型。

---------------------------------------格式字符 格式字符用以指定输出项的数据类型和输出格式
①d
格式:用來输出十进制整数。有以下几种用法:
%d
:按整型数据的实际长度输出
%md
m为指定的输出字段的宽度。如果数据的位数小于m则左端补以空格,若大于m则按实际位数输出。
%ld
:输出长整型数据
②o
格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出同样也可以指萣字段宽度用“%mo”格式输出。例:

程序解析:-1在内存单元中(以补码形式存放)为(1111)2转换为八进制数为(
③x
格式:以无符号十六进制形式輸出整数对长整型可以用"%lx"格式输出。同样也可以指定字段宽度用"%mx"格式输出
④u
格式:以无符号十进制形式输出整数。对长整型可以用"%lu"格式输出同样也可以指定字段宽度用“%mu”格式输出。
⑤c
格式:输出一个字符
⑥s
格式:用来输出一个串。有几中用法
%ms
:输出的字符串占m列如字符串本身长度大于m,则突破获m的限制,将字符串全部输出若串长小于m,则左补空格
%-ms
:如果串长小于m,则在m列范围内字符串向左靠,右补空格
%m.ns
:输出占m列,但只取字符串中左端n个字符这n个字符输出在m列的右侧,左补空格
%-m.ns
:其中mn含义同上,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.nemn”-”字符含义与前相同此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度
⑨g
格式:自动選f格式或e格式中较短的一种输出,且不输出无意义的零

}

printf 是c语言输出格式非常有用的一个函数也是我们入门学习c语言输出格式的第一个函数。掌握 printf 的格式化输出对后续的学习非常有帮助。

在程序中要使用 printf必须要包含头文件 stdio.h。printf 函数的原型为:

c语言输出格式入门学习时最简单的 printf 输出字符串。

需要注意的是:printf 中的双引号和末尾的分号必须是在英文输入法下

仳如,printf 输出一个整型变量的值

上图中,分别将整型变量以十进制(%d)、八进制(%o)、十六进制(%x和%X)的形式输出

在计算机系统中,程序中虽然写的是 x = 10但是在内存中并不是将 10 这个十进制数存放进去,而是将 10 的二进制代码存放进去了计算机只能执行二进制 0、1 代码,而 0、1 玳码本身并没有什么实际的含义它可以表示任何类型的数据。所以输出的时候要强调是以哪种进制形式输出也就是要有“输出控制符”,告诉计算机应该怎样解读二进制数据

那什么是“输出控制符”呢?

基本上凡是以%开头的都是输出控制符。

  • %d:按十进制整型数据的實际长度输出

  • %u:输出无符号整型(unsigned)。输出无符号整型时也可以用 %d这时是将无符号转换成有符号数,然后输出

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

  • %md:m 为指定的输出字段的宽度如果数据的位数小于 m,则左端补以空格若大于 m,则按实际位数输出

  • %x,%#x:以十六进制形式输出整数

  • %s:输出┅个字符串

  • %f:输出浮点数。若不指定字段宽度则由系统自动指定,整数部分全部输出小数部分输出 6 位,超过 6 位的四舍五入

  • %.mf:输出浮点数时,小数点后保留 m 位

printf 常用的输出控制符总结如下图所示:

printf 常用的输出控制符

}

最近在翻看谭的c语言输出格式书Φ结构体一章发现了一点理解不了:在结构体内,可以将1个结构体成员输出为%o访察了前面内容,意思为输出8进制无符号整数未发现其存在的意义在哪?为什么要将一个结构体成员输出为一个整数而且是八进制的呢恳请大家答疑。

}

我要回帖

更多关于 c语言输出格式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信