printf格式输出函数,作用是向终端输出若干个任意类型的数据
一般格式为printf(“格式控制”,输出表列)
例printf(“%d,%c\n”,i,c)
格式控制作用:
1. 格式说明(%..):将输出的数据转换为指定的格式输出
2. 普通字符。按原样输出
格式控制中的普通字符按原样输出
例printf(“%d %d”,a,b)
printf(“a=%d b=%d”,a,b)
在第二个函数中双引号内的字符,除了两个%d以外,其他的普通字符按原样输出,如果a,b的值分别为3,4,则输出为a=3 b=4中间有空格
3. 格式字符:
1 d格式符。%d按十进制整数数据实际长度输出;%md指定宽度(位数)m,如果数据位数小于m,则左端补空格;%ld长整型数据
2 o格式符。以八进制整数形式输出
3 x格式符。以十六进制数形式输出
4 u格式符。以十进制整数形式输出无符号数
5 c格式符。用来输出一个字符,一个整数,只要它的值在0~255之间,也可以用%c使之按字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符;反之,一个字符数据也可以用整数形式输出。
6 s格式符。用来输出一个字符串。%s;%ms,输出的字符串占m列,如果字符串本身长度大于m,则突破m限制,将字符串全部输出,如果小于m,则左补空格;%-ms,如果串长小于m,则在m列范围内,字符串向左靠,右补空格;%m.ns,输出m列,但只取字符串左端n个字符。这n个字符输出在m列右侧,左补空格;%-m.ns,取n个字符输出在m列范围的左侧,右补空格,如果n>m,则m自动取n值,即保证n个字符正常输出
7 f格式符。用来输出实数(包括单双精度),以小数形式输出。%f,不指定字段宽度,使整数部分全部输出,并输出6位小数。但注意,在输出的数字中并非全部数字都是有效数字,单精度实数的有效数字一般为7位;%m.nf,指定输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格;%-m.nf与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。
8 e格式符。以指数形式输出实数
9 g格式符。用来输出实数,根据数值的大小,自动选f格式或者e格式,且不输出无意义的零。P80
格式字符
说明
d ,i
以带符号的十进制形式输出整数
O
以八进制无符号形式输出整数
X,x
以十六进制无符号形式输出整数,用x则百偶是输出十六进制数的a~f时以小写形式输出。用X时,则以大写字母输出
u
以无符号十进制形式输出整数
c
以字符形式输出,只输出一个字符
s
输出字符创
f
以小数形式输出单双精度数,隐含输出7位小数
e,E
以指数形式输出是说,用e时指数以e表示,用E时指数以E表示
g,G
选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0.用G时,若以指数形式输出,则指数以大写表示
字符
说明
l
用于长整型整数,可加载个师傅d,o,x,u前面
m
数据最小宽度
n
对实数,表示输出n位小数,对字符串,表示截取的字符个数
-
输出的数字或字符在域内向左靠
注意:除了X,E,G外,其他格式字符必须用小写字母;可以在格式控制字符串内包含转义字符;格式符之间可以加入修饰符;用连续两个%来输出%
scanf(格式控制,地址表列)
scanf(“%d%d%d”,&a,&b,&c)
&为地址运算符,&a指a在内存中的地址。
1.用%d%d%d输入数据时不能用逗号做两个数据间的分隔符可用空格
如果%d和%d之间有n个空格,则输入时对应的位置应该有多于n个空格来分隔
总之,%d与%d之间有什么简单符号,输入信息时候就要将这些符号加上,或者格式控制里是a=%d,则输入数据时候也得输入a=某个数据
2.用%c格式输入字符时候,空格字符和转义字符都作为有效字符输入
例如:scanf(“%c%c%c”,&c1,&c2,&c3);若输入“a空格b空格c”则c1为a,c2为空格,c3为b,正确的输入法为“abc”字符间没有空格
3.在输入数据时候,遇到以下情况时,认为该数据结束①遇空格,或按回车,或跳格键;②指定宽度结束,如%3d;③遇非法输入