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

c语言在printf函数中输入数值时,怎样把数值自动带上单位?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报