目录
一、格式输入函数
格式输入函数scanf。该函数的功能是指定固定的格式,并且按照指定的格式接收用户在键盘上输入的数据,最后将数据存储在指定的变量中。
scanf函数中常用的格式字符有:
scanf函数的一般格式如下:
通过scanf函数的一般格式可以看出,参数位置中的格式控制与printf函数相同。如“%d”表示十进制的整型,“%c”表示单字符。地址列表中用于给出接收数据变量的地址。例如,得到一个整型数据的代码如下:
在上面的代码中,“&”符号表示取iInt变量的地址。用户不用关心变量的地址具体是多
少,只要在变量的标识符前加“&”,就可以表示存取变量的地址。
注意:编写程序时,在scanf函数参数的地址列表处,一定要使用变量的地址,而不是变量的标识符,否则编译器会提示出现错误。
例1:利用scanf函数得到用户输入的两个整型数据,因为scanf函数只能用于输入操作,所以若在屏幕上显示信息,还需要使用显示函数
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i1, i2; //定义两个整型变量
puts("请输入两个数字:"); //通过puts函数输出提示信息的字符串
scanf("%d%d", &i1, &i2); //通过scanf函数得到输入数据
printf("第一个数是:%d\n", i1); //输出第一个数字
printf("第二个数是:%d\n", i2); //输出第二个数字
return 0; //结束,无用时可省略
}
运行结果:
注意:直接使用scanf函数会报错,有两种解决方法,第一种(不推荐),将scanf改为scanf_s函数;第二种(推荐),在代码的最前面定义#define _CRT_SECURE_NO_WARNINGS即可
另外,在格式说明中,在“%”符号和上述格式字符间可以插入的附加符号有:
例2:依次使用scanf函数的附加格式进行格式输入,对比输入前后的结果,观察附加格式的效果
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
long i; //定义长整型变量
short ii; //定义短整型变量
int i1,i2; //定义整型变量
char c[10]; //定义字符数组变量
printf("输入长整型变量:\n"); //输出提示信息
scanf("%ld", &i); //输入长整型变量
printf("输入短整型变量:\n"); //输出提示信息
scanf("%hd", &ii); //输入短整型变量
printf("请输入两个数字:\n"); //输出提示信息
scanf("%d%d", &i1, &i2); //输入整型数据
printf("输入字符串:\n"); //输出提示信息
scanf("%3s", c); //输入字符串
printf("长整型值为:%ld\n", i); //输出长整型值
printf("短整型值为:%ld\n", i); //输出短整型值
printf("第一个数是:%d\n", i1); //输出第一个数字
printf("第二个数是:%d\n", i2); //输出第二个数字
printf("字符串为:%s\n", c); //输出字符串的前三个字符
return 0; //结束,无用时可省略
}
运行结果:
二、格式输出函数
printf函数就是用于格式输出的函数,也称为格式输出函数。有关printf函数的格式字符有:
printf函数的作用是向终端(输出设备)输出若干任意类型的数据,其语法格式如下:
1. 格式控制
格式控制是用双引号括起来的字符串,也称为转换控制字符串。其中包括格式字符和普通字符。
- 格式字符用来进行格式说明,作用是将输出的数据转换为指定的格式。格式字符通常以“%”字符开头。
- 普通字符是需要原样输出的字符,包括双引号内的逗号、空格和换行符。
2. 输出列表
输出列表列出的是要进行输出的一些数据,可以是变量或表达式。
例如,要输出一个整型变量时,代码如下:
执行上面的语句,显示出来的字符是“this is 10”。格式控制双引号中的字符是“this is%d”,其中的“this is”字符串是普通字符,而“%d”是格式字符,表示输出的是后面的iInt数据。
由于printf是函数,“格式控制”和“输出列表”这两个位置都是函数的参数,因此printf函数的一般形式可以表示为:
例3:使用格式输出函数printf输出不同类型的变量
#include<stdio.h>
int main()
{
int i = 1; //定义整型变量
char c = 'A'; //定义字符型变量
float f = 12.34f; //定义单精度浮点型
printf("整数是:%d\n", i); //输出结果
printf("字符是:%c\n", c);
printf("浮点数是:%f\n", f);
printf("字符串是:%s\n", "I LOVE YOU!");
return 0; //结束
}
运行结果:
另外,在格式说明中,在“%”符号和上述格式字符间可以插入的附加符号有:
注意:在使用printf函数时,除X、E、G外,其他格式字符必须使用小写字母,如“%d”不能写成“%D”。 如果想输出“%”符号,则在格式控制处使用“%%”进行输出即可。
例4:使用printf函数的附加格式说明字符,对输出的数据进行更为精准的格式设计
#include<stdio.h>
int main()
{
long i = 100000; //定义长整型变量并赋值
printf("该长整型变量是:%d\n", i); //输出长整型变量
printf("字符串是:%s\n", "LOVE"); //输出字符串
printf("字符串是:%10s\n", "LOVE"); //使用m控制输出列
printf("字符串是:%-10s\n", "LOVE"); //使用-表示向左靠拢
printf("字符串是:%10.3s\n", "LOVE"); //使用n表示取字符数
printf("字符串是:%-10.3s\n", "LOVE");
return 0; //结束
}
运行结果: