如何在没有外部库 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
我希望完成的事情
所以我有一个带有日期和时间的 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