C++ cin cout 的问题
inti=0,j=0;while(1){cin>>i>>j;cout<<i+j<<endl;}输入:2+3加号后面3字前面加个空格,会不停的输出停不了为什么?...
int i=0,j=0;
while (1)
{
cin >> i >> j ;
cout << i + j << endl;
}
输入 :2+ 3 加号后面3字前面加个空格,会不停的输出停不了 为什么? 展开
while (1)
{
cin >> i >> j ;
cout << i + j << endl;
}
输入 :2+ 3 加号后面3字前面加个空格,会不停的输出停不了 为什么? 展开
展开全部
cin >>不认为你输入的2+3中的+中加号而是3为正数的正号,所以输入2+3实质被解释为2 +3,所以变量i得值旁纯2,j得值键激3,输出i+j是5。输入为2+ 3时+和3被隔开,+没有运亮咐着落了就一直留在输入缓冲区——因为cin >>是自动判断类型的,2与i类型一致而+(其他符号也一样)与i类型不匹配——这样cin >>就试图把+赋给后面的j,但类型不匹配就跳过,这样while一直循环一直输出2……
追问
+号能跳过怎么空格不能跳过或一直跳过不不匹配的类型找到后面匹配的3之后赋值给j呢,上级叫我做一个加法,我写的容错率太低了.....
(你说的跳过是跳过整个cin语句吗? )
去什么地方学习比较好呢?没经验......
展开全部
iostream不是这么用的,应该敬旅是char自动转槐稿掘换成int导致了iostate的问题;
cin本身有定义一个bool的判别方式。
int i,j;
while (cin>>铅核i>>j)
cout<<i+j<<endl;
追问
写的加法要求输入x+y模式,返回和, 你这个输入2+ 3 (空格3)之后就蹦了
追答
有点bug。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加号识别不了吧,你输入2 3试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询