现在的位置: 首页 > 综合 > 正文

附录A

2013年10月01日 ⁄ 综合 ⁄ 共 1711字 ⁄ 字号 评论关闭

 

 

把附录看了看,但是只看了printf函数族这一部分,因为后面的部分对我来说太高深了,

 

至少对于现在的我来说还太高深了。

 

printf函数族

 

         printf函数的第一个参数是关于输出格式的说明,它是一个描述了输出格式的字符串。

 

printf函数把格式说明字符窜中的字符逐一复制到标准输出,直到格式字符串结束或者遇到

 

一个%字符。这时函数并不打印%字符,而是查看紧跟%字符之后的若干字符,以获得有关

 

转换其下一个参数的指示。

 

printf函数同族的函数还有fprintfsprintffprintf函数的作用是把数据写到任何文

 

件中,需要些入的特定文件将作为该函数的第一个参数,它必须是一个文件指针。当输出数

 

据不是被写入到一个文件中时,我们可以使用sprintf函数。该函数的第一个参数是一个指

 

向字符数组的指针,sprintf函数将其输出数据输入到这个数组中。该函数生成的输出数据总

 

是以空字符结尾,如果希望在输出数据中出现一个空字符,我们可以显示的使用%c格式说

 

明把它打印出来。

 

         这三个函数的返回值都是已经传送的字符数,其中sprintf函数的返回的字符数不包括

 

空字符。

 

格式码

 

         格式字符串中的每一个格式项都是由%符号打头,后面接一个称为格式码的字符,格式

 

码指明了格式转换的类型。

 

%d打印整数

 

%o打印8进制的数

 

%x%X打印16进制的数。其中%x中表示的af是小写,%X中表示的af是大写

 

%f%g%e:打印浮点数。%f是以小数形式打印,精确到小数点后六位;%e是以指数形

 

式打印,精确到小数点后六位;%g是当数字的绝对值大于999999或者特别小时,以科

 

学技术法的形式打印。%G%g相同,%E%e的区别是用E来代替e来表示指数形式

 

%s打印字符串一直对应的参数是一个字符串的指针,直到遇到空字符为止

 

%c打印单个字符

 

%%打印%字符

 

         %与格式码之间可以使用一些修饰符来修饰。

 

修饰符

 

l长形数字。如%ld

 

宽度修饰符(数字):设定输出字符的个数,如果没有达到设定的长度则会用空格补上,如

 

果超过设定长度则会自动调整以容纳该数值。宽度修饰符对于所有的格式码都有用,包

 

%%

 

精度修饰符:根据不同的格式码,拥有不同的意义

 

         对于%d%o%u%x,精度修饰符指定了最少打印的位数

 

         对于%e%E%f,精度修饰符指定了小数点后应该出现的数字位数

 

         对于%g%G,精度修饰符指定了打印数值中的有效数字位数

 

         对于%s,精度修饰符指定了将要输出的字符个数

 

         对于%%%c,精度修饰符忽略

 

标志

 

         -要求显示方式为左对齐,在右端填充空白字符

 

         +要求将要打印的数字,都以它的符号(正负号)作为第一个字符

 

空白字符:如果某数是一个非负数,那么在它的前面插入一个空白符。如果空白符与—

 

+同时出现则以+为准。如果我们使用科学技术法,那么% e%+e%e要有用的

 

 

#对数值输出的格式进行微调,具体方式与特定的格式项有关。给%o格式项加上标志

 

#的效果是:当有必要时增加数值输出的精度(这只需要输出的第一个数字为0

 

就已经做到了)。#对浮点数的影响有两点:1.它要求小数点必须被打印出来,即使

 

小数点后没有数字2.如果用于%G%g格式项,打印出的数值尾缀的0将不会被去

 

 

可变域宽与精度

 

         为了消除魔数我们往往会进行宏定义,但是如果在宽度修饰符和进度修饰符中使用宏定

 

义的数字是非法的,为了解决这个问题,我们使用*来代替宽度修饰符和精度修饰符中的数

 

字,然后将数字作为参数。如果对应的参数是负数,那么符号将会作为-标识符来处理。

 

新增的格式码

 

         %p用于某种形式打印一个指针

 

         %n用于指出已经打印的字符数,这个数被储存在对应参数(一个整型指针)所指向

 

的整数中

 

 

 

 

         废除的格式码我就不说了,这是附录Aprintf族有关内容

 

抱歉!评论已关闭.