C/C++ while循环语句问题

如while(1)是一个无限循环(用Bool值来说是true的意思)while(-1)也是一个无限循环所以意思是非0即为真true的意思么?还有个问题如下,inti,ci... 如while(1)是一个无限循环(用Bool值来说是true的意思)
while(-1)也是一个无限循环所以意思是非0即为真 true的意思么?
还有个问题如下,int i, cin >> i, 此时输入1 下面的 while( cin >> 1)不就是while(1)的意思么,可是结果为什么不是无限循环呢??是cin重载的问题么,
int main(){ int i; while (cin >> i )// i 输入1
cout << "OK" << endl; cout << "Break" << endl; cin.get(); return 0;}
-------------------------------------------------------------------------------------------------------------
改成下面这样又可以无限循环
int main(){ int i;
cin >> i; // i 输入1 while ( i )
cout << "OK" << endl; cout << "Break" << endl; cin.get(); return 0;}
展开
 我来答
考试学习必备资料
推荐于2016-01-14 · TA获得超过348个赞
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:143万
展开全部

cin >> i 返值类型不是int,而是istream类模版特化类。运行程序看返值类型

#include <iostream>
#include <cstdlib>
#include <typeinfo>
using namespace std;
 
int main()
{
    int i;
    cout<<typeid(cin>>i).name()<<endl;
    system("PAUSE");
    return 0;
}

   

 在VC++6.0运行结果是:class std::basic_istream<char,struct std::char_traits<char> >

zyc
2014-09-12 · 知道合伙人软件行家
zyc
知道合伙人软件行家
采纳数:328 获赞数:5073
擅长数据通信、路由器组网、C++语言、数据库SQL语言、GP

向TA提问 私信TA
展开全部
主要是你把whlie(i)注释掉了,改到//号之前就好了。
代码如下:

#include<iostream>
using namespace std;
int main()
{
int i=0;
cin >> i;
while(i)// i 输入1 while ( i )
cout << "OK" << endl;
cout << "Break" << endl;
cin.get();
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
smallkhb
2014-09-12 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:88
采纳率:0%
帮助的人:77.8万
展开全部
int a;
bool(a) == bool(a != 0);
class istream{
istream& operator>>(int) {
return *this;
};
operator bool(){
return !eof();
}
};
看代码你就懂了。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式