C语言scanf函数

C语言scanf函数

函数名:scanf
功能:实现格式化输入
格式:scanf(“<格式化字符串>”,地址表)

scanf函数是通用终端格式化输入函数,它从标准设备键盘上读取信息,然后把信息输入任何有固有类型的数据的地址中

scanf常用格式化字符:%d(整型,十进制),%s(字符串型),%c(字符型),%f(浮点型,小数)

具体使用举例
#include<stdio.h>
int main()
{
int a,b,c;
printf(“alittle conut:\n”);
scanf("%d ,%d,%d",&a,&b,&c);
printf(“输出三个数字:%d % %d\n”,a,b,c);
printf(“alittle conu:\n”);
scanf(“a=%d ,b=%d,c=%d”,&a,&b,%c);
printf(“输出三个数字:%d %d%d”,a,b,c);
printf(“alittle conu:\n”);
scanf("%d %d%d",&a,&b,&c);
printf(“输出三个数字:%d % %d\n”,a,b,c);
return 0;
}
输出如图
#include<stdio.h>
int main()
{
char a[11];
char b;
printf(“put achar:\n”);
scanf("%c",&b);
printf("%c\n",b);
printf(" put somechar:\n");
scanf("%s",&a);
printf("%s\n",a);
return 0;
}
运行结果:
在这里插入图片描述

注意事项one
在键盘上打印的输入需要与“格式化字符串”使用相同的格式才有效,否则会出错

注意事项two:
我们在运行这个程序会发现在第二个scanf函数自动跳过,不等待我输入就自己执行了,这是为什么呢?**我们在运行这个程序会发现在第二个scanf函数自动跳过,不等待输入就自己执行了,这是为什么呢?
原因:当scanf函数控制符是字符c的时候,我们在程序前一行连续输入两个整数的时候打的回车或者是空格都会被下一轮的scanf(“%c”,xx)吸收导致我们无法在输入下一个字符
更详细一点说呢就是
函数scanf( )从标准输入设备(键盘) 读取输入的信息,不会直接赋值给变量,而是先储存到一个缓冲区中
当程序执行到函数scanf()时,程序会从缓冲区中读取;
如果缓冲区是空的,才会停滞,光标闪烁,等待键盘的输入.
**

解决方法

1,在scanf(“%c”,c)的上一行添加一个getchar()函数来读取掉多余的字符,使得下一个scanf函数能正常运行
2,在scanf(“%c”,c)后面重复打印一个scanf(“%c”,c)再次读取输入的字符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值