目录
1.输入与输出函数
1.1 printf和scanf(数值)
printf在传输数据的时候输入的是一个char*类型的指针,并用const修饰为常变量。printf是一个数值的输出库函数,这个函数由print和format组成,意思是将print(输出)格式化,正式化,
printf由格式声明和输出表列两部分组成,格式声明由%和格式字符组成,括号中的字符串为格式控制
scanf在传输数据的时候输入的也是一个char*类型的指针,并用const修饰为常变量。scanf是一个数值的输入库函数,这个函数由格式控制和地址表列组成,scanf这个函数访问的是元素的地址,如果我想要得到我输入的这个字符,就必须找到他所在的位置,这就是为什么一定要用&取地址操作符。注意的是,在输入数值数据的时候,比如空格等特殊字符,就会认为输入结束。
1.2 putchar和getchar(字符)
putchar传入的是字符。putchar是一个字符的输出库函数,由put和character组成,意思是输出字符。
getchar传入的是一个空指针,没有固定的数据类型。getchar是一个字符的输入库函数,由get和character组成,意思是输入字符。
当然,通过ASCII码值,其实scanf.printf和getchar.putchar这两对函数可以互换,因为字符类型也是整数类型,因此将一个字符赋给字符变量和将字符的ASCII码值赋给字符变量作用是完全相同的。
2. 格式符
我们已知printf在使用时分为格式声明和输出表列两个部分,在输出时,对不同类型的数据要指定不同的格式进行声明,而格式声明中重要组成部分为格式字符。
2.1. %d
d格式符的作用是用于输出一个有符号的十进制整数,输出的时候只输出十进制整型数据的实际长度,负数会输出符号,而正数不会。
我们知道int类型有多种:(un)signed int ,(un)signed long int,(un)signed long long int 等等,(un)signed int对应的是%d ,(un)signed long int对应的是%ld,(un)signed long long int对应的%lld。
可以指定输出数据的域宽,也可以认为是长度,比如
可以看到,虽然100只有三位数,但是我们命令他域宽为6时,前面会输出3个空格来达到目标。所以,如果我们需要完成一个指定域宽的一堆数据的排列时,可以通过这个方法而向右靠齐。
2.2. %c
%c操作符作用为输出字符,如果我们定义一个char类型的数据,可以用%c输出这个字符。
当然,这有一种特殊情况,仅限于在ASCII值里面的字符可以使用,
在输出之前,电脑会将这个整数转化为ASCII所对应的字符,然后再输出。
2.3. %s
%s操作符的作用是输出字符串,但也仅仅只能打印字符串。
2.4. %f
%f操作符的作用是输出一个带有精度的数字。一般这个操作符的作用效果是实数中的整数部分全部输出,小数部分输出六位。
2.4.1 %a.bf
但是,我们可以通过我们对系统的设定而改变这个特殊的方法。比如%a.bf
在这里,a和b都是整数而且是我们主动去输入的,比如%4.3f代表的意思是输出的数字域宽总共为4列,然后小数占3列
在这种方法下,我们就可以人为控制输出数字的格式去更好的迎合我们的需求。
2.4.2 %-a.bf
在这个数据前面添加负号,当数据长度不超过a时,数据往左边靠(靠左对齐)。
下列是%a.bf的操作效果:
换成%-a.bf,效果为
可以合理的解决域宽太大出现左边空缺的问题。
2.5. %e
%e格式符的作用是以指数的形式输出数字,而且%E效果相同。总所周知,计算机中的指数的呈现形式为2e+2(为200),如果我们输入一个数字,想让他变成科学计数法的形式,就可以参考该格式符,比如
2.6. %i
%i格式符的作用是输出十进制整型数据的所有长度,和%d效果相同。
2.7. %o
%o操作符的效果是将十进制的数据转换为八进制数据,注意的是,输出的数值不带符号,符号位包含在数值中。
2.8. %x
%x操作符的效果是将十进制数据转化为十六进制数据,当然,也存在%lx和%llx
2.9. %u
%u格式符的效果是输出unsigned int 数据类型的数据,即只输出无符号整型,并将这些数据以十进制输出,一般不常用。
2.10. %g
%g格式符的作用是选择最佳的输出方式,即输出浮点型数据的最短形式。
可以看出,该%g格式符的优点是将数据简单化,不会输出0。
2.11. %p
%p操作符的作用是打印地址
好了,文章到这边基本上介绍完了常量与变量,作者制作不易,希望能收获你的喜欢和关注