输入&输出

一、printf

1、格式字符

%d:十进制有符号int型
%u:十进制无符号int型
%f:以小数形式(6位小数)输出float、double型
%e:以标准指数形式输出float、double
%c:以字符形式输出单个字符
%hd:输出short 类型

2、格式修饰符

1、 printf("%10f",32.6784728);

域宽为10,而float输出6为小数,需要四舍五入,加上小数点和整数部分一共9位,故左边还需一个空格,即右对齐
如果左对齐,加负号:

 printf("%-10f",32.6784728);

如果域宽小于原数,那么按照原数输出
2、printf("%m.nf",32.6784728);//共输出m个字符,小数点后保留n位。
3、若想输出%,需要打 %%

二、scanf

1、如何分隔多个输入数据

空格、Tab或回车
达到输入位宽

#include<stdio.h>
int main()
{
	int a,b;
	scanf("%2d%2d",&a,&b);
	printf("%d %d",a,b);
} 

比如输入123456,因为确定了位宽,所以依然输出a=12,b=34
遇非法字符

#include<stdio.h>
int main()
{
	int a,b;
	scanf("%d%d",&a,&b);
	printf("%d %d",a,b);
} 

比如输入12 3a,那么输出的是12,3。a为非法字符。若输入123a,那么a=123,b没有输入,为乱码。

2、格式字符

1、%f不能输入指定数据的精度

scanf("%7.2f",&a)//错误,不应该有.2

2、%lf表示输入double 注意:输出时float和double都用%f。
3、*:输入项在读入后不赋给相应的值

scanf("%2d%*2d%2d",&a,&b)

输入123456,那么其中的34赋给了*2d,a=12,b=56。

三、字符的输入与输出

1、转义字符

在这里插入图片描述
需要注意的是‘\102’(八进制)表示的是‘B’,‘\x42’(十六进制)表示的也是‘B’ 不存在‘\128’,因为字符一个字节最大占127

2、ACSII码表:

在这里插入图片描述

3、getchar()

getchar()是以行缓冲方式输入数据的,即用户在用getchar()从键盘输入字符时,程序并未直接读取用户输入,而是在用户按回车键以后将输入字符先放入到输入缓冲队列中,然后再从缓冲队列中读取字符。
getchar()可以读取回车

4、scanf读取字符

为了避免用scanf函数以c格式符将前面用户输入的回车符作为有效字符读走。
可以在scanf(“%c”,&a)前面加getchar()
也可以在%c前面加空格:scanf(“ %c”,&a)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值