scanf 接收 空格 输入_c语言scanf()停止接受输入及scanf("%c",&c)吃掉回车或者空格字符的问题...

while(scanf("%d,%d",&a,&b)!=2)fflush(stdin);

c=a+b;

printf("%d+%d=%d",a,b,c);

}

#include

void main(){

int a;

char b;

printf("input a integer\n");

scanf("%d",&a);

//这里需要吸收 回车符 下面有种方法,第二种我没看懂 谁能改下代码 告诉我第二种怎么用

printf("input a char\n");

scanf("%c",&b);

printf("%d,%c\n",a,b);

}

/*

(1)用getchar()清除

(2)用"%1s"来限制

(3)用格式串中空格或"%*c"来"吃掉"

(4)用函数fflush(stdin)清除全部剩余内容

*/#include

int main(){

int a;

char b;

printf("input a integer\n");

scanf("%d",&a);

//这里需要吸收 回车符 下面有种方法,第二种我没看懂 谁能改下代码 告诉我第二种怎么用

printf("input a char\n");

scanf("%1s",&b);

printf("%d %c\n",a,b);

system("pause");

return 0;

}环境(dev c++)

测试结果

可以看出a的值异常了,为什么呢?

这应该和编译器有关系,因为%1s的输入方式的问题。

解决方法有两种:

第一:

charb;

inta;

将这两个变量的声明换一下,哈哈,以前老师说过。但我感觉着不是解决方法,如果还有其他的变量,这种方式是不是还会危害其他呢。

第二:

#include

intmain(){

inta;

charb[2];

printf("input a integer\n");

scanf("%d",&a);

//这里需要吸收 回车符  下面有种方法,第二种我没看懂 谁能改下代码 告诉我第二种怎么用

printf("input a char\n");

scanf("%1s",&b);

printf("%d %c\n",a,b[0]);

system("pause");

return0;

}

b声明成字符创的形式,哈哈,这个好。。。。

结果为:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值