sprintf函数中的格式 "%%0%dd" 是啥意思?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sprintf函数中的格式 "%%0%dd" 是啥意思?相关的知识,希望对你有一定的参考价值。
首先“%%”表示在控制台输出一个“%”,注意是一个百分号,相当于转义,然后0相当于一个字符输出,后面“%d”表示输入一个十进制整数,最后一个“d”也作字符输入,假设你在函数中要输出一个整数5。int x = 5;
printf("%%0%dd",x);
输出结果为:%05d 参考技术A //https://www.nowcoder.com/acm/contest/85/A
#include <stdio.h>
#include <math.h>
#define E exp(1)
int main()
int T, a, b, r, i;
double result, e;
char str[10];
e = exp(1);
scanf("%d", &T);
for (i = 0; i < T; i++)
scanf("%d%d%d", &a, &b, &r);//r是自定义小数点后位数
result = pow(e, a);
result *= b;
sprintf(str, "%%.%df\\n", r);//把%.rf\\n放入str里面,注意,此时str[0]是%(转义的百分号),str[1]是
.(小数点),str不包含引号,包含换行(换行位是一个字符,ASCII为10)
// printf("%s",str);
printf(str,result); //str代替"%.rf\\n"
//例如r=3,意思就是printf("%.3f",str);
// printf("%.*f\\n", r, result); //和上面功能一样,就是把r放进*的位置
return 0;
以上代码实现,输入自定义小数点长度,附上题目和运行结果
sprintf()函数的用法
语法
sprintf(format,arg1,arg2,arg++)
参数 | 描述 |
---|---|
format |
必需。规定字符串以及如何格式化其中的变量。 可能的格式值:
附加的格式值。必需放置在 % 和字母之间(例如 %.2f):
注释:如果使用多个上述的格式值,它们必须按照以上顺序使用。 |
arg1 | 必需。规定插到 format 字符串中第一个 % 符号处的参数。 |
arg2 | 可选。规定插到 format 字符串中第二个 % 符号处的参数。 |
arg++ | 可选。规定插到 format 字符串中第三、四等 % 符号处的参数。 |
以上是关于sprintf函数中的格式 "%%0%dd" 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章