我的代码出了什么问题?它没有显示适当的年龄? 例如,如果我输入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;
}
答案 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。