如何解决为什么输出不显示初始化值-1?
int main()
{
cout << "Please enter your first name and age\n";
string first_name = "???";
int age = -1;
cin >> first_name >> age;
cout << "Hello," << first_name << " (age " << age << ")\n";
}
根据《 使用C ++编程原理和实践》第二版(作者:Bjarne Stroustrup),当我提供输入信息时
22 Carlos
预期输出应为:
22(age -1)
但是当我运行它时,我得到:
22(age 0)
是什么原因?
解决方法
您的书中描述的行为在C ++ 11之前是正确的。在此之前,如果提取失败,则仅设置故障位。该值本身保持不变。
但是,自C ++ 11起,该值现在设置为零,此外还设置了故障位。有关更多信息,请参见this reference page on std::istream::operator>>。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。