C++用单个>>输入两个short int时第二个变量值异常问题
问题原因
你使用的输入方式(输入5加空格再加5)是完全正确的,问题出在输入语句的逻辑错误:cin >> var7, var8; 中的逗号是C++逗号运算符,运算优先级远低于>>,因此这条语句实际只会执行cin >> var7给var7赋值,var8全程没有参与输入操作,属于未初始化的局部变量,打印时输出的就是栈内存中的随机残留值,也就是你看到的28900这类异常数字。
修正方案
要满足「仅用一条语句、通过>>完成两个变量取值」的要求,将输入语句修改为连续调用>>运算符即可,修正后的完整代码如下:
printf("enter an integer for var7 and var8 \n"); short int var7, var8; cin >> var7 >> var8; printf("Short integer value 7 is %d \n", var7); printf("Short integer value 8 is %d \n", var8);
修改后你原来的输入方式可以正常识别两个数值,输出结果符合预期。
内容的提问来源于stack exchange,提问作者unit5016
相关产品推荐
相关产品推荐

