如果x <10则添加前导0并将其存储为int

Pet*_*ren 0 c++

我正在研究一个小的"时间"函数库,只是为了更多地了解如何使用C++和函数.

我有一个被调用的函数 Time(int hh, int mm, int sec)

我希望如果用户输入Time(11, 9, 14) 我想将此值存储在内存中hh = 11; mm = 09; sec = 14;以便稍后使用.

我知道,如果我要使用cout我本来可以使用的cout << setw(2) << setfill('0') << mm << endl;

但是现在我想直接将值存储为int,我该怎么做?`

我试过time = (tt > 10) ? 0 + mm : mm;但我想这就像做基本的加法0 + 9 = 9.

Lig*_*ica 6

别.

数字是一个数字.

您正在存储值"九".这可以写成十进制文字9,或八进制文字010,十六进制文字0x09,十六进制文字0x0000000009,或英文"九",或法文"neuf"......

...或者作为格式化的零填充字符串"09",这在C++中是可能的,但是当你牺牲直接访问算术,失去价值验证时,完全没有意义,现在必须将它转换回数字以做任何有趣的事情.

您正在寻找的值已经存在(实际内部存储为二进制位序列)."零填充到两位小数"的信息不是值的一部分,而是屏幕上可能表示的一部分.

只需存储9在您的int格式中并在您想要输出时格式化它.

  • @MartinBonner仍然是价值和展示形式是两个独立的事情. (3认同)