Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么输出不显示初始化值-1? intmain() { 姓名>>年龄; cout_C++_C++11 - Fatal编程技术网

C++ 为什么输出不显示初始化值-1? intmain() { 姓名>>年龄; cout

C++ 为什么输出不显示初始化值-1? intmain() { 姓名>>年龄; cout,c++,c++11,C++,C++11,在C++11之前,您的书中描述的行为是正确的。在此之前,如果提取失败,则仅设置failbit。值本身未被修改 但是,自C++11以来,除了设置故障位外,该值现在被设置为零。有关更多信息,请参阅。请参阅。正如在该页上所述,自C++11以来,该值被设置为零,故障位被设置。在C++11之前,只有故障位被设置。@AndreasWenzel:所以基本上答案是“BadBoy21正在阅读的书已经过时了”@ShadowRanger:是的,差不多是这样。这本书是《使用C++2版编程原理与实践》。我从作者的网站上读

在C++11之前,您的书中描述的行为是正确的。在此之前,如果提取失败,则仅设置failbit。值本身未被修改


但是,自C++11以来,除了设置故障位外,该值现在被设置为零。有关更多信息,请参阅。

请参阅。正如在该页上所述,自C++11以来,该值被设置为零,故障位被设置。在C++11之前,只有故障位被设置。@AndreasWenzel:所以基本上答案是“BadBoy21正在阅读的书已经过时了”@ShadowRanger:是的,差不多是这样。这本书是《使用C++2版编程原理与实践》。我从作者的网站上读了勘误表:这并不是一个真正的勘误表,但有些实现在>>失败时会将int值归零。最终所有实现都会归零,但在C++11之前没有一个实现。因此,根据实现的年份,您会得到0或-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";    
}