【问题标题】:How to fill in blank (integer) places with zero in C?如何在C中用零填充空白(整数)位置?
【发布时间】:2020-04-19 08:33:08
【问题描述】:

我想在 C 整数中添加前导零。我正在做一个时钟。这是我到目前为止的代码:

int main(){

    while (1){
    time_t present;
    time(&present);
    struct tm *myTime =  localtime(&present);
    printf("%2d:%2d:%2d\n", myTime->tm_hour,myTime->tm_min, myTime->tm_sec);
    sleep(1);
    }

    return 0;
}

这是当前的输出:

11:30: 0
11:30: 1
11:30: 2
11:30: 3
11:30: 4
11:30: 5
11:30: 6
11:30: 7
11:30: 8
11:30: 9
11:30:10

这是我想要的输出:

11:30:00
11:30:01
11:30:02
//and so on...

【问题讨论】:

  • 在您最喜欢的文档源中阅读printf() - 手册页、cppreference 等。
  • 使用%02d格式
  • cplusplus.com/reference/cstdio/printf 中所述,'%2d' 表示长度为 2,为了达到 2,应添加一个空格。但是,如果您输入 '%02d' (如答案中所述),您会特别提到必须使用零字符而不是空格。

标签: c time formatting printf string-formatting


【解决方案1】:

% 和长度修饰符(此处为2)之间填充0 printf() 调用中的每个格式说明符:

printf("%02d:%02d:%02d\n", myTime->tm_hour,myTime->tm_min, myTime->tm_sec);
         |    |    |
        here here here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 2021-12-12
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    • 2011-09-17
    相关资源
    最近更新 更多