⭐用printf函数输出数据
✳:格式形式
printf("输出格式符",输出项);
✳:格式字符
- d格式字符
- f格式字符
- c格式字符
- s格式字符
①:d格式字符
%d | 有符号十进制整数 |
%md:用于指定输出数据的域宽(所占的列数)
int a = 256,b = -125;
printf("%5d\n%5d",a,b);
256前面有2个空格,-125前面有1个空格
若输出长整型数据,则格式为"%ld"。
若输出双长整型数据,则格式为"%lld"。
②: f格式字符
%f | 浮点数,十进制计数法 %f格式字符只能输出6位小数 |
%f:(基本型 )
实数的整数部分全部输出,小数部分输出6位小数
%m.nf:(拓展型)
指定数据宽度和小数位数 (m表示输出数据的宽度,即占m列,n表示小数点后保留n位小数)
%.nf:(拓展型)
不需强调输出数据宽度
#include<stdio.h>
int main(){
double a = 1.0;
printf("%20.15f\n",a/3);
return 0;
}
在0前面有3个空格,小数点后输出了15位小数
注意:double型只能保证15位有效数字的精确度 如用(%.50f) 不能保证输出的50位都是有效数值
③: c格式字符
%c | 单个字符 |
一个整数如果在0~127范围中,用"%c"使之输出,会按ASCII码转换成为相应的字符
④:s格式符
%s | 字符串 |
用来输出一个字符串
printf("%s","CHINA")
输出:"CHINA"
⭐用scanf函数输入数据
✳:格式形式
scanf("格式控制字符串",地址列表);
地址列表:&变量名
✳:格式字符
scanf 函数的格式控制字符串也是以 % 开始,以一个格式字符结束,中间可以插入附加的格式说明符。
格式字符如下表所示:
%d | 用来输入十进制整数 |
%o | 用来输入八进制整数 |
%x | 用来输入十六进制整数 |
%c | 用来输入单个字符 |
%s | 用来输入字符串,将字符串送到一个字符数组中,在输入时以非空字符开始,以第一个空白字符结束。字符串以串结束标志 \0 作为其最后一个字符。 |
%f | 用来输入实数,可以用小数形式或指数形式输入 |
%e | 与 f 作用相同,e 与 f 可以替换 |
✳: 格式说明字符
l | 用于输入长整型数据(可以用 %ld、%lo、%lx),以及 double 型数据(用 %lf 或 %le) |
h | 用于输入短整型数据(可以用 %hd、%h0、%hx) |
m | 指定输入数据所占宽度(列数),遇空格或不可转换字符则输入结束 |
* | 表示本输入项在读入后不赋给相应的变量 |
(1)可以指定输入数据所占列数,系统自动按指定的列数截取所需数据。
#include<stdio.h>
int main() {
int a,b;
char ch1,ch2;
scanf("%3d%3d",&a,&b);
scanf("%3c%3c",&ch1,&ch2);
printf("a=%d,b=%d\n",a,b);
printf("ch1=%c,ch2=%c\n",ch1,ch2);
return 0;
}
输出:
(2)% 后的 * 附加说明符,用来表示跳过它相对应的数据
#include<stdio.h>
int main() {
int a,b;
scanf("%d %*d %d",&a,&b);
printf("a=%d,b=%d\n",a,b);
return 0;
}
输出:
⭐:scanf 函数的使用要点
1、scanf 函数中格式控制字符串后面不是变量名,是变量地址,即:&变量名。但在使用 s 格式输入字符数组时,变量名本身就是字符串的首地址,不需要加地址运算符 &。
#include<stdio.h>
int main() {
int a;
char str[6];
scanf("%d",&a);
scanf("%s",str);
printf("a:%d\n",a);
printf("str:%s",str);
return 0;
}
输出:
2、scanf 函数没有计算功能,因此输入的数据只能是常量,不能是表达式。
3、输入数据时,数据与数据之间应使用分隔符。分隔符有两种,一种是在输入格式控制字符串中给定的。另一种是空格、Enter 键或制表符(Tab)。
#include<stdio.h>
int main() {
int a,b,c,d,e,f,g,h;
scanf("%d,%d",&a,&b); //输入时用逗号(,)分隔
scanf("%d%d",&c,&d); //输入时用空格分隔
scanf("%d%d",&e,&f); //输入时用回车分隔
scanf("%d%d",&g,&h); //输入时用tab键分隔
printf("a=%d,b=%d\n",a,b);
printf("a=%d,b=%d\n",c,d);
printf("a=%d,b=%d\n",e,f);
printf("a=%d,b=%d\n",g,h);
return 0;
}
输出为:
4、输入格式中,除了格式说明之外的普通字符需要原样输入。
#include<stdio.h>
int main() {
int x,y;
scanf("x=%d,y=%d",&x,&y);
printf("x=%d,y=%d\n",x,y);
return 0;
}
输出为: