我是在输入选择时遇到的问题,比如给用户一个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()
这下解决了。
原理是什么,请懂的大佬评论区留言,让我学习学习。