文档详情

C程序设计简明教程 王晓东 第3章 顺序结构新.ppt

发布:2015-12-14约字共43页下载文档
文本预览下载声明
输入分隔符的指定 一般以空格、TAB或回车键作为分隔符 其它字符做分隔符:格式串中两个格式符间字符 说明: 用“%c”格式符时,空格和转义字符作为有效字符输入 格式字符(type)一鉴表: 用来输入十、八(0开头)、十六(0x开头)进制整数 i 输入百分号(%) % 不输入数据,只将该语句已成功读入的字符数(到%n为止)送到对应的地址中 n 与f作用相同,e、f和g可以互换 g(G) 用来输入实娄,用小数形式或指数形式输入 f(e) 用来输入字符串,将字符串送到一个字符数组中 s 用来输入单个字符 c 用来输入无符号十进制整数 u(U) 用来输入以十六进制整数 x(X) 用来输入八进制整数 o 用来输入十进制整数 d 说 明  字符 附加格式说明符(修饰符) l 修饰符 功 能 h m * 用于d,o,x前,指定输入为short型整数 用于d,o,x前,指定输入为long型整数 用于e,f前,指定输入为double型实数 指定输入数据宽度,遇空格或不可转换字符则结束 抑制符,指定输入项读入后不赋给变量 例 scanf(“%4d%2d%2d”,yy,mm,dd); 输入 ? 则1999?yy, 10 ?mm, 15 ?dd 例 scanf(“%3d%*4d%f”,k,f); 输入 12345678765.43? 则123?k, 8765.43?f 例 scanf(“%2d%*3d%2d”,a,b); 输入 1234567? 则12?a, 67?b 例 scanf(“%3c%2c”,c1,c2); 输入 abcde ? 则‘a’?c1, ‘d’ ?c2 scanf (“i=%d,i);printf (“i=%d,i); scanf (%d%d%d, a,b,c); 出 输 0 3 = i 入 输 ↙ 0 3 = i :取地址运算符。 表示将所输入后的数据放入对应地址的存储单元中。 错 ↙ 3 , 2 , 1 ↙ 3 ↙ 2 ↙ 1 或 ↙ 3 2 1 出 输 0 3 = i 入 输 ↙ 0 3 = i scanf (%d,%d,%d“, a,b,c); 错 ↙ 3 2 1 ↙ 3 , 2 , 1 scanf (%d,%*d,%d“, a,b); 3 = b 1 = a ↙ 3 , 2 , 1 错 ↙ 3 2 1 ↙ 3 , 2 , 1 例 scanf(“%d%o%x”,a,b,c); printf(“a=%d,b=%d,c=%d\n”,a,b,c); 输入 123 123 123? 输出 a=123,b=83,c=291 例 scanf(“%d:%d:%d”,h,m,s); 输入 12:30:45? 则12 ?h, 30 ?m, 45 ?s 例 scanf(“%d,%d”,a,b) 输入 3,4 ? 则3?a, 4 ?b 例 scanf(“a=%d,b=%d,c=%d”,a,b,c); 输入 a=12,b=24,c=36 ? 如 scanf(“%c%c%c”,c1,c2,c3); 若输入abc? 则a?c1,  ?c2, b ?c3aaaaa 输入数据时,遇以下情况认为该数据结束: 遇空格、TAB、或回车 遇宽度结束 遇非法输入 如 scanf(“%d%c%f”,a,b,c); 若输入1234a123o.26 ? 则 1234 ?a, ‘a’ ?b, 123 ?c 输入函数留下的“垃圾”: 例 int x; char ch; scanf(“%d”,x); ch=getchar(); printf(“x=%d,ch=%d\n”,x,ch); 执行:123? 输出:x=123,ch=10 例 int x; char ch; scanf(“%d”,x); scanf(“%c”,ch); printf(“x=%d,ch=%d\n”,x,ch); 执行:123? 输出:x=123,ch=10 解决方法: (1)用getchar()清除 (2)用函数fflush(stdin)清除全部剩余内容 (3) 用格式串中空格或“%*c”来“吃掉” 例 int x; char ch; scanf(“%d”,x); scanf(“
显示全部
相似文档