C++ while(cin>>cmd&&cmd[0]!='q')

初学者询问:........charcmd[10];while(cin>>cmd&&cmd[0]!='q').......请教cin>>cmd这一部分参与“&&”逻辑的准... 初学者询问:
........
char cmd[10];
while(cin>>cmd&&cmd[0]!='q')
.......
请教cin>>cmd这一部分参与“&&”逻辑的准确意思。输入值不为空吗?

谢谢
展开
 我来答
GTA小鸡
高粉答主

2018-02-24 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
读入成功时,cin返回true。如果读到文件尾EOF标志、非法字符等则会返回false。
&&叫逻辑与,当且仅当&&左右两个表达式都为true时,&&才返回true。
更多追问追答
追问
感谢您,我写了一段代码来验证,确实cout>cmd);
cout<<abc<<endl;
}
追答
cin的>>操作符的返回值是cin对象本身而不是布尔型,之所以可以进行真假测试,是因为iostream类重载了operator bool()。所以当你试图把一个iostream类的对象赋值给一个bool型时,就会报错。需要写成abc=(cin>>cmd).operator bool()
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式