C ++时代将无法正常显示

时间:2015-02-02 06:49:03

标签: c++

我的代码出了什么问题?它没有显示适当的年龄? 例如,如果我输入1990作为我的生日,它应该显示25作为我的年龄,但它显示1025;

#include <iostream>

int main()
{

     long unsigned x, year;
     long unsigned z;
     year = 2015;
     std::cout << "Year of Birth: ";
     std::cin.get();
     std::cin >> x;
     std::cin.get();
     z = year - x;
     std::cout << "Your age is " << z << std::endl;
     std::cin.get();
     std::cout <<" /n";
     return 0;   

}

3 个答案:

答案 0 :(得分:2)

删除std::cin.get()的每个实例,提及@ user2899162,而/n不打印新行\n

编辑代码:

#include <iostream>

int main()
{

     long unsigned x, year;
     long unsigned z;
     year = 2015;
     std::cout << "Year of Birth: ";
     std::cin >> x;
     z = year - x;
     std::cout << "Your age is " << z << std::endl;
     std::cout <<"\n";
     return 0;   
}

请通过在您不确定的操作之后打印变量的值来自行删除此类小错误。

答案 1 :(得分:1)

这是因为cin.get();中的语句line:12

cin.get();将保持屏幕,直到用户点击一个键,然后继续执行该程序的其余部分。

因此,如果用户输入1992作为他的出生年份,那么第一个键盘命中&#39; 1&#39;应由cin.get()使用,而cin>>x仅在x中存储992。

解决方案: 删除cin.get()

干杯

答案 2 :(得分:0)

正如其他人早先回答的那样,删除std :: cin.get()将解决您的问题 对于换行,您还可以使用std :: endl。