C语言之数据的输入输出(3)

⭐用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 函数的使用要点 

1scanf 函数中格式控制字符串后面不是变量名,是变量地址,即:&变量名。但在使用 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;
}

输出:

2scanf 函数没有计算功能,因此输入的数据只能是常量,不能是表达式。 

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;
}

 输出为:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值