2017-03-23 8 views
1

私はC++にはまったく新しいので、私が間違っていることを本当に分かっていない、私はJavaに限られた知識しか持っていません。C++の整数入力に上記の0を含める方法

私は現在、ユーザに年(つまり2007)を入力するように求めており、その年の2つの数字(この場合は20とo7)をとり、最初の2桁に1を加えます(そう21)それから彼らは彼らが入力した年の100年前になる年として再びそれらを表示します。

私の問題は、2007年または1206、または3桁目の数字が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"); 

} 

感謝!

+0

おそらく文字列としてあなたの入力を取る? –

+3

なぜ年全体に100を追加するだけではないのですか?それ以外の場合は、先行する0を保持する文字列として2番目の部分を読み込む必要があります(または0の塗りつぶしを使用しますが、これはこれよりもはるかに複雑です)。 – Dan

+0

すべての返信をありがとう...最終的に私は年に100を追加し終わった、それはうまくいくように見えた。ありがとう! – TheUltimateAssasin11

答えて

4

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; 
関連する問題