double x;
while(cin>>x)
{...}
为什么当输入x的值为0时,while条件依然为真?当输入什么时才能跳出while循环
我只有在输入英文时才跳出循环 换行空格之类都没用是怎么回事?
while判断的是cin>>x这个条件,就是只要有输入存在就为真,你要是想当x为0的时候退出,就while(cin>>x&&x),输入字母的时候没有执行循环应该不是跳出了循环,而是字符类型与double类型的转换出错,出现异常了。
一个关于while(cin>>a)的一个不得不注意的问题
前几天写了一段代码大概意图是这样,要求输入三组数字到vector A ,vector B,vector C.于是我写下了如下代码:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2......
答案就在这里:标准输入cin的返回值以及while(cin>>x)的问题
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
cin>>x返回一个isteam值,只要有输入就会返回一个固定值,一直为真。
可以向下面这样设计,判断一个实数是否0,要用绝对值。
#include <iostream>
#include <math.h>
using namespace std;
int main(void)
{
double x;
do
{
cin>>x;
}while(fabs(x)>0.001);
return 0;
}
按ctrl+z 结束输入 再按回车运行
输入数据有误,或者读取内容完结时才结束循环
只要有输入就可以循环
因为你给的类型是double类型,编译器认为只要是不能够隐式转换成功的cin就会返回错误,从而循环退出...