文档详情

3_第4章_顺序程序设计_200903update.ppt

发布:2017-06-17约1.19万字共58页下载文档
文本预览下载声明
* * 函数的值是从终端上得到的字符。 * * * 5. o格式符——以8进制数形式输出整数 输出的数值不带符号,即将符号也一起作为八进制数的一部分输出。 如:int a=-1; printf(“%d,%o”,a,a); 结果:-1,177777 o格式符同d格式符一样,可以输出长 整型数据,也可以指定字段宽度。 1 111 111 111 111 111 6. x格式符——以16进制数形式输出整数 同样不会出现负的十六进制数。 7. u格式符——以十进制形式输出unsigned型数据 如: main() { unsigned int a=65535; int b=-2; printf(“a=%d,%o,%x,%u\n”,a,a,a,a); printf(“b=%d,%o,%x,%u\n”,b,b,b,b);} 输出结果: a=-1,177777,ffff,65535 b=-2,177776,fffe,65534 8. C格式符——用来输出一个字符 一个整数,只要它的值在0~255范围内,也可以用字符形式输出,在输出前,将该整数转换成相应的ASCII字符;反之,一个字符数据也可以用整数形式输出。 如:main() { char c=‘a’; int i=97; printf(“%c,%d\n”,c,c); printf(“%c,%d\n”,i,i);} 输出结果: a,97 a,97 9. s格式符——用来输出一个字符串 (1) %s :按原长度输出字符串。 如: printf(“%s”,“CHINA”) 输出结果:CHINA (2) %ms :输出的字符串占m列,如字符串本 身长度大于m,则突破m的限制,将字符串 全部输出;若串长小于m,则左补空格。 (3) %–ms :如果串长小于m,则在m列范围内 ,字符串向左靠,右补空格。 (4) %m.ns :输出占m列,但只取字符串中左端 n个字符。输出在列的右侧,左补空格。如 果nm,则自动取n值,即保证n个字符正常输出。 (5) %–m.ns , 其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。 如:printf(“%3s,%7.2s,%.4s,%-5.3s\n”, “CHINA”, “CHINA” ,“CHINA”, “CHINA”); 输出结果:CHINA, CH,CHIN, CHI 4.5.2 scanf 函数(格式输入函数) (一)一般形式 scanf(格式控制,地址表列) 10 15 main() { int a,b,c; scanf(“%d,%d”,a,b); printf(“a=%d,b=%d”,a,b); 输入:10,15 输出:a=10,b=15 a b 2008 2013 (二)格式说明 与prntf函数中的格式说明相似,以%开始,以一个格式字符结束(表4-3),中间可以插入附加的字符(表4-4)。 如:int a,b,c; scanf(“%d%d%d”,a,b,c); 输入形式:10 17 181 int a,b,c; scanf(“%d,%d,%d\n”,a,b,c); 输入形式: 10,11,12 scanf(“%3d%3d%c”,a,b,ch); 输入形式:123456abc 结果:a=123 b=456 ch=‘a’ scanf(“%d%d%c”,a,b,ch); 输入形式:123 456abc 结果:a=123 b=456 ch=‘a’ 有错吗? main() { int x,y; char ch; scanf(“%5d,%3d%c”,x,y,ch); } main() { int x,y; char ch; scanf(“%5d,%3d%c”,x,y,ch); } 输入数据: 345,567a 说明: 1. %后的“*”附加说明符,用来表示跳过它相应的数据。 如:scanf(“%2d ,%*3d ,
显示全部
相似文档