输入和类型问题

时间:2014-07-22 17:13:39

标签: c++

我从Stroustrup的Programming: Principles and Practice Using C++开始,我遇到了第一个问题。长话短说,假设我们有以下代码:

int main() {
  cout << "Enter your first name and age:\n";
  string first_name = "???";
  int age = -1;
  cin >> first_name >> age;
  cout << "Hello, " << first_name << " (age " << age << ")\n";
}

在本书之后输入22 Carlos应输出:

Hello, 22 (age -1)

但我明白了:

Hello, 22 (age 0)

我不知道出了什么问题。任何想法或指针?

1 个答案:

答案 0 :(得分:6)

这是point of difference between C++03 and C++11

  

注释

     

在C ++ 98 / C ++ 03中,如果发生错误,v保持不变。在C ++ 11中,它被设置为如上所述的值。

在C ++ 11中,如果未能提取int目标设置为0

请注意,即使您的编译器设置为C ++ 03模式,它仍然可能表现出C ++ 11行为,例如,如果其标准库不愿意采用C ++ 03模式中的旧行为。