c++ - 解释以下 C++ 程序的输出?
问题描述
int x = 10,y = 18; char z = '*';
cin>> x >> y >> z;
cout<< x << " " << y << " " << z << endl
给定输入“46”“A”和“49”的顺序,我运行程序时的输出是“460*”(不包括引号。为什么会这样?
解决方案
x
并且y
是整数类型。z
是一个char
。
给定输入46
A
49
,
cin>> x
成功并设置x
为46
。cin>> y
失败,因为A
不是整数。y
设置为0
并设置了cin
故障位。因为
cin
处于失败状态,cin>> z
什么都不做,z
保持不变。
推荐阅读
- c - 此代码是否会产生分段错误错误?
- monitoring - 如何从 grafana 中的应用程序 url 中过滤服务器名称
- c# - Unity C#如何将颜色纹理中的颜色保存为playerprefs
- c++ - `VkDescriptorSetLayoutBinding::descriptorCount` 指定了什么?
- kubernetes - Kubernetes 环境变量未通过 PodDefault 附加
- xml - 通过 XSLT 1.0 从 xml 输入动态地将 href 标记显示为链接
- azure-sql-database - Azure Cosmos DB - 如何了解集合中的独特文档结构?
- python - 禁用在 QListWidget pyqt5 中突出显示所选项目
- c# - 如何在我的 html 代码中将此参数传递给我的控制器中的操作
- javascript - Plotly:在堆积条形图的顶部显示数字的总和