双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

"<<"两边的数据类型不一致时,会怎样处理?

lijiao7073 lijiao7073 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在程序运行时,如果输入数字,则程序中的循环正常。但是如果输入非数字字符,比如字母,就会一直循环,不停止,也无法再接收输入。
看了下,问题只能出在cin>>ch上面了。
分析了下,应当是>>两端的数据类型不一致的原因。
但是我很好奇,这时>>是怎样处理的,为什么无法再接收输入了呢?

还有我非常想知道,有没有什么资料详细的解释了语言比如C/C++中的函数、重载运算符的实现方法的,例如源码之类的?

#include<iostream>
using namespace std;

void main()
{
bool k=true;
int ch=0;
while(k)
{
cout<<"------------------------------------------------------------------|"<<endl;
cout<<"| 1、输入文件路径 2、计算灰度 |"<<endl;
cout<<"| 3、显示灰度 4、保存灰度 |"<<endl;
cout<<"| 5、退出 |"<<endl;
cout<<"-------------------------------------------------------------------"<<endl;
cin>>ch;
cout<<"ch="<<ch<<endl;
switch(ch)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
k=false;
break;
default:
break;
}
}
}
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
lijiao7073
C++ 语言 65,214 成员 250,514 内容