格式字符串用来定义输入数据的格式,其形式与printf()的格式字符相似,也包含格式字符与普通字符两部分。
(1)格式字符
格式字符串以“%”引导,其形式为:
%[*][width][F/N|h|1]type
各部分介绍如下:
①类型字符type
与scanf的规定相同,如%d代表要求输入十进制有符号整数等。具体见表所示。
类型字符 | 功能说明 |
d或i | 以十进制有符号形式输入整数 |
U | 以十进制无符号形式输入整数 |
o | 以八进制无符号形式输入整数 |
X或乂 | 以十六进制无符号形式输入整数 |
f | 以小教形式输入实数 |
C | 输入单个字符 |
S | 输入一个字符串 |
E或e; g或G | 与f作用相同,可以e、g替换f |
例如:
scanf ("%c%d%f%lf",&c.&a.&x.&y);
要求输入一个字符、一个十进制有符号整数、一个单精度数据、一个双精度数据。
②宽度指示符width
宽度指示符width是一个十进制正整数的形式,表示该输入项最多可接收的字符个数,也就是说,读取输入数据中相应的n位,按需要的位数赋给相应的变量,多余部分被舍弃。但读取过程中如遇到空格、tab或其他不可转换的字符,输入个数可少于宽度指示。
例如:
int a,b,c;
scanf("%2d%2d%3d",&a.&b.&c);
printf("a=%d,b=%d,c=%d\n",a,b,c);
程序执行时,若输入12345口67890,输出结果为:
a=12,b=34»c=»5
第一个输入项a的宽度指示符为2位,所以得到“12”;第二个输入项b的宽度指示符为2位,所以得到“34”;第三个输入项c的宽度指示符为3位,但当读取完“5 之后,遇到空格,空格认为数据输入结束,所以变量c只得到“5”。
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>