gpt4 book ai didi

c++ - 如何在 C++ 中为整数输入包含前面的 0

转载 作者:行者123 更新时间:2023-11-30 01:40:34 27 4
gpt4 key购买 nike

我是 C++ 的新手,所以我真的不知道我做错了什么,我对 Java 的了解有限,但仅此而已。

我目前正在开发一个程序,该程序要求用户输入年份(即 2007 年),该程序采用该年的 2 个数字(在本例中为 20 和 o7),然后将前 2 位数字加 1(所以 21) 然后它再次将它们显示为比他们输入的年份早 100 年的年份。

我的问题是当我输入 2007 或 1206 或任何第三位数字为 0 的数字时,结果为 217(对于 2007 年的情况)。我想知道是否有办法确保输出包括一年中的所有数字。

到目前为止,这是我的程序:

 #include <iostream>
#include <cstdlib>
#include <string>
#include <iomanip>

using namespace std;

int main()
{
cout.precision(4);
cout << setfill('0') << setw(2) << x ;
//declaring variables
int year;
int firstDigits;
int secondDigits;
int newFirstDigits;
int newSecondDigits;
int newYear;
//gets the year from the user
cout <<"please enter a year in YYYY format"<<endl;
cin>>year;
//finds the dirst 2 digits
firstDigits=year/100;

//finds the second 2 digits
secondDigits=year%100;

//adds 100 years to the year that was inputted
newFirstDigits=firstDigits+1;

newSecondDigits=year-firstDigits*100;
//outputs to the user what 100 years
//from the year they entered would be
cout<<"the new year is "<<newFirstDigits<< newSecondDigits<<endl;

system ("PAUSE");

}

提前致谢!

最佳答案

使用 std::setw(int width) 来自 <iomanip> .

你一直在使用它:

 cout << setfill('0') << setw(2) << x ;

但这只会在打印时设置它 x .打印到 cout 时将来,IO 操作将丢失。你要做的是:

 cout << "the new year is "
<< setfill('0') << setw(2) << newFirstDigits
<< setfill('0') << setw(2) << newSecondDigits << endl;

关于c++ - 如何在 C++ 中为整数输入包含前面的 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42965977/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com