Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

А как сделать, чтобы при вводе 02 поля year, оставалось 02, а не усекалось до 2, как сделать чтобы вводился норм год? С++

Евгений Добрицкий Ученик (6), закрыт 5 лет назад
#include
#include
#include < clocale >

using namespace std;

class date {

private:

int month, day, year;

public:

date() : month(0), day(0), year(0) {}

void getdate()

{
cin >> month >> day >> year;

}

void showdate()
{

cout << month << "/" << day << "/" << year << endl;

}
};

int main()

{
date kuku;
kuku.getdate();
kuku.showdate();

setlocale(LC_CTYPE, "rus");

system("pause");

}
Лучший ответ
Алекс Куха Высший разум (446558) 6 лет назад
Тип надо менять и уже самостоятельно в целый превращать с алертом по ошибке.
Или наоборот, из целого делать строку с ведущими нулями, что по мне понятней и проще.
std::stringstream ss;
ss << std::setw(10) << std::setfill('0') << i;
std::string s = ss.str();
Остальные ответы
kaiu Высший разум (115630) 6 лет назад
а так не катит?
if year < 10 then
else

А то тогда cppstudio.com/post/319/
Алексей Мудрец (13611) 6 лет назад
С помощью printf это легко делается:
printf("%02d.%02d.%04d", ..);
Похожие вопросы