如何在没有外部库 C++ 的情况下在 int 前面添加 0

How to Add 0 infront of an int without external library c++

我希望完成的事情

所以我有一个带有日期和时间的 class,我正在使用一个结构,其中年、月、日是我想要的整数,例如当用户输入数字时 3 它必须输出 03 但必须是 int 格式而不使用 IOMANIP 库或 fmt 库,因为当我使用这些库时我得到 'error time does not have a type'

请帮助我怎样才能在月份和日期之前将 0 存储在变量中,同时仍然是一个 int;

我已经试过了setw但是没有像上面提到的那样工作

所以我尝试将其存储在指针和向量中

我有一个 class 具有结构日期和时间的名为 vehicle

struct time
{
    int hh;
    int mm;
    int ss;
    char col1;
    char col2;
};
struct date
{
  int day;
  int month;
  int year;
  char sym1;
  char sym2;
};

class vehicle
{
    string pltno;
    int type;
    date dt;
    time arrive;
    time departure;

我有代码

vector<vehicle> vehleft(100);
int static totalvehicle=0,totalcar=0,totalbike=0,totalamt=0,i=0,z=0;

fstream file;

void vehicle::addVehicle()
{

      vehicle *v = new vehicle;
      cin.ignore();
      cout<<"Enter vehicle number : ";
      std::getline(cin, v->pltno);
      cout<<"Enter arrival time in hours minutes and seconds : ";
      cin>>v->arrive.hh>>v->arrive.col1>>v->arrive.mm>>v->arrive.col2>>v->arrive.ss;
      cout<<"Enter date in day month and year: ";
      cin>>v->dt.day>>v->dt.sym1>>v->dt.month>>v->dt.sym2>>v->dt.year;

我尝试做的是使用 setw 和 setfill 在前面添加一个 0 但是当我这样做时我得到一个错误 'time is not a type' 只要我包含 ctime 库或 Iomanip 库就会发生这种情况。

基本上我希望 v->dt.day 和 v->dt.month 分配用户输入,如果数字是 3,它将保持为 3 而不是 03,这是我想要的格式

更新

当我在月份输入 10 时,输出时它说的是 0 而不是 10?

setw 与 setfill 结合使用,例如

std::cout << std::setw(2) << std::setfill('0') << day; 

可能对你有用。 也可以看看 https://en.cppreference.com/w/cpp/io/manip/setfill