首页 > 解决方案 > 解释以下 C++ 程序的输出?

问题描述

int x = 10,y = 18; char z = '*';
cin>> x >> y >> z;
cout<< x << " " << y << " " << z << endl

给定输入“46”“A”和“49”的顺序,我运行程序时的输出是“460*”(不包括引号。为什么会这样?

标签: c++variables

解决方案


x并且y是整数类型。z是一个char

给定输入46 A 49

  1. cin>> x成功并设置x46

  2. cin>> y失败,因为A不是整数。y设置为0并设置了cin故障位。

  3. 因为cin处于失败状态,cin>> z什么都不做,z保持不变。


推荐阅读