内容正文:
C 语言程序设计
2023
翻转课堂实用教程
第4章输入输出函数
格式化输入函数scanf()和格式化输出函数printf()
4.1
字符/字符串输入输出函数
4.2
4.1 格式化输入函数scanf()和
格式化输出函数printf()
情形一
情形二
情形三
从标准输入设备(一般是键盘)输入数据(包含整数、实数、字符等),并把结果输出到终端(一般是屏幕)上
从标准输入设备输入字符或字符串,并把结果显示在终端上,建议使用字符输入函数getchar()和字符串输入函数gets()
从文件中读取数据(包含整数、实数、字符等),并把结果输出到文件中
使用格式化输入函数scanf()和格式化输出函数printf()
使用字符输出函数putchar()和字符串输出函数puts()
使用文件输入函数fscanf()和文件输出函数fprintf()
选择使用哪个函数?
放到文件一章讲解
4.1.1格式化输入函数scanf()
scanf(格式控制字符串,变量地址列表)
函数格式:
函数功能:
通过标准输入设备(键盘、写字板等),按照格式控制字符串中的格式要求为变量地址列表中的变量输入数据
变量地址列表串:
变量地址列表由输入项组成,两个输入项之间用逗号分隔,输入项一般由地址符&和变量名组成,即:&变量名
格式转换说明符 功能描述
%d 输入一个十进制整数
%u 输入一个无符号十进制整数
%f 输入一个单精度实数
%lf 输入一个双精度实数
%e, %E, %g, %G 输入一个输入实数,可以用小数形式或指数形式输入
%c 输入一个字符
%s 输入一个字符串
%o 输入一个八进制整数
%x,%X 输入一个十六进制整数
%* 表示本输入项只是读入,但不赋给相应变量
例子
PK
例如:从键盘接收整数或实数
例如:从键盘输入数据方法
int a = 0, b = 0, c = 0; float d = 0,e=0;
scanf("%d%d", &a,&b); //两个%d之间无空格,输入整数并赋值给变量a和b
scanf("%d %d", &b, &c); //输入两个整数并分别赋值给b、c
scanf("%d is smaller than %d", &a, &b);
scanf("%f,%f", &d, &e); //输入两个整数并分别赋值给d、e
5. scanf("%f+%f", &d, &e); //输入两个整数并分 别赋值给d、e
1. scanf("%d%d", &a,&b); //两个%d之间无空格,输入整数并赋值给变量a和b
2. scanf("%d %d", &b, &c); //输入两个整数并分别赋值给c、d
3. scanf("%d smaller %d", &a, &b)
4. scanf("%f,%f", &d, &e); //输入两个整数并分别赋值给c、d
5. scanf("%f+%f", &d, &e); //输入两个整数并分别赋值给c、d
输入函数scanf()
注意
(1)格式控制字符串中多个格式转换说明符之间没有逗号,输入数据时,通常使用空格键或者回车键来分隔数据;格式转换说明符之间有逗号,输入数据时,一定要用逗号来分隔数据。
(2)格式转换说明符个数和类型必须与变量地址列表一一对应 。
(3)*(抑制字符):表示本输入项只是读入,但不赋给相应变量。
(4)对于 scanf(),输入数据的格式要和控制字符串的格式保持一致,但对输入数据之间的空格的处理比较宽松,并不要求空格数严格对应,多几个少几个无所谓,只要有空格就行。
* 抑制字符的用法
案例4-1-1 *(抑制字符)的用法
案例4-1-1程序代码:
main()
{
int a,b;
scanf("%d%*d%d",&a,&b) ;
printf("a=%d,b=%d
",a,b);
}
案例4-1-1,运行结果:
12 34 56↙
a=12,b=56
第二个数对应*,没有赋值给变量
例如:从键盘接收字符或字符串
char m,n;
char url[30];//定义一个字符数组用来存储字符串
scanf("%c %c", &m,&n);//输入一个字符,并赋值给变量letter
2. scanf("%s", url); //输入一个字符串,并赋值给变量url
例如:从键盘输入数据方法
scanf("%c %c", &m &n);//输入两个字符,并赋值给变量letter
2. scanf("%s", url);