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

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

望采纳!!

你可以通过下面我给你的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);
}

scanf("%d",&n);是输入,你printf怎么输入?

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^