介秋 2023-01-28 13:34 采纳率: 80%
浏览 45
已结题

c语言在printf函数中输入数值时,怎样把数值自动带上单位?

c语言在用printf函数输入数值时,怎样把输入的数值自动带上单位
如:输入:10
自动带上单位:10(秒)

  • 写回答

3条回答 默认 最新

  • Halifax ‎ 2023-01-28 14:26
    关注

    望采纳!!

    你可以通过下面我给你的typename方法,你来判断:你输入的数据类型,然后动态的【拼接】数据类型的【单位】字符串:

    #include <stdio.h>
    #include <stddef.h>
    #include <stdint.h>
    
    #define typename(x) _Generic((x),        /* Get the name of a type */             \
                                                                                      \
            _Bool: "_Bool",                  unsigned char: "unsigned char",          \
             char: "char",                     signed char: "signed char",            \
        short int: "short int",         unsigned short int: "unsigned short int",     \
              int: "int",                     unsigned int: "unsigned int",           \
         long int: "long int",           unsigned long int: "unsigned long int",      \
    long long int: "long long int", unsigned long long int: "unsigned long long int", \
            float: "float",                         double: "double",                 \
      long double: "long double",                   char *: "pointer to char",        \
           void *: "pointer to void",                int *: "pointer to int",         \
          default: "other")
    
    #define fmt "%20s is '%s'\n"
    int main() {
        size_t s; ptrdiff_t p; intmax_t i; int ai[3] = {0}; 
        printf( fmt fmt fmt fmt fmt fmt fmt fmt,
            "size_t", typename(s),
            "ptrdiff_t", typename(p),
            "intmax_t", typename(i),
            "character constant",
            typename('0'),
            "0x7FFFFFFF",
            typename(0x7FFFFFFF),
            "0xFFFFFFFF",
            typename(0xFFFFFFFF),
            "0x7FFFFFFFU",
            typename(0x7FFFFFFFU),
            "array of int",
            typename(ai)
            );
        return(0);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月5日
  • 已采纳回答 1月28日
  • 创建了问题 1月28日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度