c语言各种输出格式(C语言程序设计现代方法)(1)

1. printf函数的格式:有两部分组成,一部分是格式串,是告诉计算机如何来显示一些数据的。它又分为两部分,(1)是普通字符,显示的时候原样显示;(2)是转换说明,是用于控制数据显示的形式的。另一大部分是表达式列表,就是我们想要让计算机显示的数据的列表。

如:printf("a =m,b=M",86,1040)

"a =m,b=-" 是格式串, 其中 a= , b=就是普通字符,会原样显示,而m M 是转换说明符,是来控制后面两个数的显示形式的。对于例子,结果应该是:

86,1040 注意86前面有4个空格。

2. 转换说明格式是%m.pX

m表示显示的最小字符数量,如果要显示的数少于m,则靠右对齐,前面补空格,如果显示的数多于m,则字段宽度会自动扩展。如第1中,86一共是2个数 小于4,所以右对齐,前面补空格,而1040一共是4个数,大于2,所以自动扩展成4,即还是打印1040,不能打印成10.

转换说明有这样几种:

(1)d 用来表示10进制形式的整数。

(2)e用来表示指数形式的。

(3)f表示定点十进制形式的浮点数,没有指数

(4)g表示指数形式或者定点十进制形式的浮点数

对于这部分内容的理解,大家可以在上机的时候来不断的测试,看一下输出结果,做到真正的理解。

3. scanf函数是大家容易糊涂的内容。经常会和printf函数混淆,其实这两个函数完全是反着的,一个是从键盘接收数据,一个是通过显示器打印数据给用户看。

scanf函数的格式:也是由两部分组成,一部分是格式串,另一部分是地址列表(一定要注意是地址列表,不要忘了&)。格式串又有两个部分组成,一部分是普通字符,一部分是转换说明。和printf不同的是,这里的普通字符不再是原样输出到屏幕上了,是用户要原样输入到计算机上。

举个例子:scanf("a=%d",&a); a=%d就是格式串,其中 a= 是普通字符 %d是转换说明。那么如果执行的时候应该这样做,用户输入:a=12才行,一定要加上a= 要保持和scanf格式串中的a=表示一致。否则接收不到数据12.

4. scanf中的格式说明,有:

(1)%d 接收整数

(2)%f %g %e用于接收浮点数

注意 如果前面加上数字,如- ? 等,那么是分别从键盘上取输入数据的2个数,3个数。

5. scanf函数的接收数据的原理,如:scanf("%d%f%d",&i, &x, &j); 执行后,用户输入的数据: 10.3 6 8

针对上面的数据,scanf是这样工作的。

首先,根据第一个转换说明%d 计算机需要从键盘缓冲区中取整数,第一个是1,1可以是整数的一部分,接收1,然后看后面的0,0可以是整数的一部分,所以把接收0,再向后看,是个点,不是整数的一部分,则结束%d的数据接收,把10给i,检查后面的%f 先看这个点,点属于浮点型,所以接收这个点,然后看后面的字符是3,3可以是浮点型的一部分,接收3,然后看后面的空格,空格不是浮点型的一部分,于是把点和3给了x。接下来根据%d来接收整数,忽略空格后看后面的6,6是整数的一部分,于是接收6,后面又是空格,结束整数的接收,把6给j,结束数据的接收。后面的8会给接下来的scanf函数。

,