输入时,将字符输入给int(整型)变量,无法输入的问题

我是在输入选择时遇到的问题,比如给用户一个0~3的选项,让用户选择,用switch接收这个int变量,在C++中就会出现一个问题,当你输入的不是数字,这个int变量就会变成0,我们来看看代码

	int a;
	cin >> a;
	cout << a;

这时候我就想到了是不是cin的问题,于是我换了scanf

int a;
scanf_s("%d",&a);
cout << a;

 

嗯,很好,不是0了

那么这时候问题来了,在我记忆中,如果将一个字符赋值给整型变量,那么应该是将字符的ASCII码赋值给它,为什么在我这里行不通呢,于是我想到了是不是%d的问题

int a;
scanf_s("%c",&a);
cout << a;

 

嗯,很明显不是,那么是不是vs的问题呢?

 

 

 

嗯,也不是

最后我想到了,是不是类型转换出了问题,于是我想到了getchar()

这下解决了。

原理是什么,请懂的大佬评论区留言,让我学习学习。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值