我是c语言的初学者
想问一下在用printf()函数输入数值时,怎样把这个数值自动带上一个指定的单位?
例如:输入10
显示10(秒)
单位是自动带上去的
printf是输出用的
scanf才是输入用的
你到底是要输入还是输出,还是输入的过程中还想输出
如果是输入10之后立即打印一个秒,那就scanf后面加个printf("秒")不就行了
望采纳!!
你可以通过下面我给你的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);
}