printf和scanf函数用法规则
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例:printf(“%4d,%4d”,a,b);
若a=12, b=12345,则输出
12,12345
%ld:输出长整型数据。
➢%d的输出范围为-32768~32767,输出超过该 范围的整型数就会出错,此时用%ld输出。
2020/3/11
➢其输出格式和功能与%d相同,如:%8ld
Page 6
Program Design in C Language
功能
输入十进制整数
输入八进制整数 输入十六进制整数
输入一个字符 输入一个字符串 以小数或指数的形式输入实数 两者功能相同,可互换
形式 %d、%ld、%hd % md、%mld %o、%mo、%lo %x、%mx、%lx
%c %s、%ms %f、%mf、%lf %e、%me、%le
2020/3/11
Page 15
•格式控制:由双引号括起来的字符串,用于指定要输入 的数据的格式。
1)普通字符:按原样输入的字符; 2)格式说明:用来指定需输入数据的输入格式的, 其形式为:
% [<修饰符>]格式字符 •地址表列:由若干个变量地址组成的表列。
地址是由”&”运算得到的。 “&”是取址运算符,单目运算符,右结合性。
2020/3/11
Page 11
Program Design in C Language
实例:
#include <stdio.h> void main() { int a=1234;
程序运行结果: 1)1234, 1234,1234 ,1234; 2)12.345670, 12.3457,12.35; 3)1.23457e+01,6.78900e+02; 4)1.23457e+01, 1.23457e+01; 5)1.234567e+01, 1.23e+01;
用于输出的格式字符
ຫໍສະໝຸດ Baidu
格式符 d o x
功
能
输出十进制整数
以八进制形式输出整数
以十六进制形式输出整数
形式 %d、%md、%ld、%mld
%o、%mo、%lo %x、%mx、%lx
u 以十进制形式输出一个无符号的数
%u
c s f e g
2020/3/11
输出一个字符
%c
输出一个字符串
%s、 % ms、 % m.ns
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
(6) s格式字符
%s:用来输出一个字符串
例:printf(“%s”,“Hello!”);
输出Hello!,不包括“ ”
%ms:输出的字符串占m列。如果字符串长度小于m, 则左端补以空格;长度大于m,则输出整个字符串。
普通字符 格式控制
附加 格式符
格式符 输出表列
格式说明符
2020/3/11
Page 5
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
(1) d格式字符
%d:按整型数据的实际长度输出 %md:m为指定的输出长度。如果数据位小于m, 则左端补以空格;大于m,则按实际位输出。
%-m.nf:功能同上,右端补以空格。 (8) e格式字符
%e:不指定字段宽度,系统自动给出6位小数,指 数部分占4位。其中“e”占1位,指数符号占1位, 指数占2位。
2020/3/11
Page 10
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
printf("5)%10.7e,%10.3e;\n",f1,f1); }
2020/3/11
Page 12
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
2、格式输入:scanf( )函数
•功能:从终端输入任何类型的多个数据 •格式:scanf("格式控制",地址表列);
•数据输入时不可规定精度,但可确定宽度。 例:scanf(”%3f%3c”, &a, &b); 合法。 例:scanf(”%3.2f%3c”, &a, &b); 非法。
2020/3/11
Page 17
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
•用c格式符输入字符时,空格、转义字符均为有效 字符。 例 scanf("%c%c%c", &a, &b, &c);
若键入 ABC 则 a=A,b=B,c=C
若键入 A B C 则 a=A,b= ,c=B
若键入 A B 则 C 未送,结果已出为: a=A,b= ,c=B
2020/3/11
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
格式输入的使用与注意:
• 输入数据时采用的分隔符应与格式控制中的分隔符一致。 例1: scanf("%d%f%d", &a, &b, &c);
• 格式符中无普通字符时,可用空格、Tab键、回车键作分隔符。
% [<修饰符>]格式字符
格式字符用以说明输出数据的类型,形式,长度,小 数位数等。
•输出表列:需要输出的数据列表,彼此间用逗号分隔。 它可是任意合法的表达式。
2020/3/11
Page 2
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
例:printf(“%e”,123.456);
输出:1.234560e+02 6位小数部分 4位指数部分
%m.ne, %-m.ne, %me :中m,-的意义和前相同,n 是指数据的小数部分输出的位数。 (9) g格式字符
用来输出实数,根据数值大小,自动选f或e 格式,且不输出无意义的零。
2020/3/11
用于输出的修饰符
修饰符
功
能
l
用于长整型、双精度型数据 可加在格式符d、o、x、u、f前
m
数据的最小宽度
n
对实数,表示输出 n 位小数 对字符串,表示从左端截取的n个字符
- 输出的数字或字符左对齐,右边填补空格
2020/3/11
Page 3
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
输出结果:
1) Very Good!
2) “Very Good!”
2020/3/11
Page 19
Program Design in C Language
程序实例1:
main( ) { int a; float b ; char c ;
程序运行结果: 按格式%d%f%c送数:23◇4.5p
printf("按格式%%d%%f%%c送数:"); a=23, b=4.500000, c=p,
数据输入输出
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
1. printf( )函数
•一般形式: printf(“格式控制字符串”,输出表列);
•功能:通过标准输出设备(如显示器)输出 一组数据。 输出形式由“格式控制”字符串规定。
printf函数是一个标准库函数,它的函数原型在头 文件“stdio.h”中。
格式输出:printf( )函数和scanf( )函数
(2) o格式字符 以八进制数形式输出整数,且不带符号。
对于长整数可用“%lo”输出。功能同十进制输出。 (3) x格式字符
以十六进制数形式输出整数,且不带符号。 对于长整数可用“%lx”输出。功能同十进制输出。
用%o,%x输出负数时会发生错误。
2020/3/11
Page 1
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
•格式控制:由双引号括起来的字符串,用于指定要输出 的数据的格式。 它包括:
1)普通字符:按原样输出的字符; 2)格式说明:用来指定需输出数据的输出格式的, 其形式为:
(4) u格式字符
用来输出unsigned型数据,即无符号数,输出十 进制数。
2020/3/11
Page 7
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
(5) c格式字符
•用来输出一个字符。
例:char c=‘a’;
printf(“%c”,c); 一个整数,如果在0~255之间,也可用字符形式输出,
%-m.ns:其他意义同%m.ns,右补空格。
2020/3/11
Page 9
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
(7) f格式字符
%f:不指定字段宽度,整数部分全部输出,小数 部分输出6位。 %m.nf:指定输出数据占m列,其中有n位小数。 若数值长度小于m,则左端补以空格。
Page 16
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
•无符号数可用 %d、%o、%x 格式输入。
•输入格式符带有 * :表示该数据不赋值。 例:scanf("%d%*d%d", &a, &c); 键入: 12 34 567 则 a=12, c=567, 34未赋值。
float f1=12.34567,f2=678.9;
printf("1)%d,%6d,%-6d,%2d;\n",a,a,a,a);
printf("2)%f,%10.4f,%3.2f;\n",f1,f1,f1);
printf("3)%e,%e;\n",f1,f2);
printf("4)%8e,%14e;\n",f1,f1);
以小数的形式输出实数
%f、%m.nf 、%lf
以标准指数的形式输出实数
%e、 % m.ne
根据实数的大小自动按f或e的形式 选择输出格式
%g
Page 4
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
例:格式输出:printf()函数 printf(" a+b = %5.2 f " , c );
如:12 3.45 678↙ 或 12(Tab)3.45(Tab)678 例2: scanf("%d,%f,%d", &a, &b, &c);
必须采用格式:12,3.45,678↙ 例3: scanf("a=%d, b=%d", &a, &b);
必须采用格式: a=12, b=345↙
2020/3/11
Page 13
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
例:&a, &chr, &i,分别表示变量a, chr, i的地址,该地址是 在编译连接时系统分配给变量a, chr, i的地址。
用于输入的修饰符
修饰符 l h
功能
用于长整型、双精度型数据 可加在格式符 d、o、x、f、e 前
Page 18
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
• 在下列情况下可认为数据输入结束:
➢ 遇空格、回车、跳格键(Tab)时;
➢ 遇宽度结束;
➢ 非法输入。
•在格式控制字符串中可包含转义字符。
例: 1) printf(“1) %s\n”,“ Very Good!”); 2) printf(“2) \“%s\”\n”,“Very Good!”);
系统会将该整数转换成相对应的ASCII码字符;同时,一
字符也可以用整数形式输出。
int a=65;
int c=‘A’;
printf (“%c”,a);
printf (“%d”,c);
输出A
输出65
•c格式字符也可以指定输出字数宽度
如:printf(“%3c”,c),则输出
A
2020/3/11
Page 8
例:printf(“%3s”,“Hello!”); 输出Hello!
printf(“%7s”,“Hello!”); 输出 Hello! %-ms:如果串长小于m,则字符串向左靠,右补空格, 其余同上。
%m.ns:输出的字符串占m列,但只取字符串中左端n个 字符,这n个字符输出在m列的右侧,左端补空格。
用于短整型数据 可加在格式符 d、o、x 前
m(域宽) 指定输入数据所占的宽度(列数)
*
表示本输入项在读入后 不赋给相应的变量
2020/3/11
Page 14
Program Design in C Language
格式输出:printf( )函数和scanf( )函数
用于输入的格式字符
格式符
d
o x c s f e