C++年龄无法正确显示

C++ age won't display properly

本文关键字:显示 C++      更新时间:2023-10-16

我的代码有什么问题?它没有显示正确的年龄?例如,如果我输入 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;   
}

删除@user2899162提到的每个std::cin.get()实例,/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;   
}

请在您不确定的操作后打印变量的值,自己删除这些小错误。

这是因为语句

cin.get(); line:12 .

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

因此,如果用户输入 1992 年作为他的出生年份,则第一个键盘点击"1"将被cin.get()使用,cin>>x 将只在 x 中存储 992。

溶液:删除cin.get()

干杯

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