大家好,断更了一个月自己在考试所以没有更新,这里我今年的第一篇文章依旧依旧是新手的printf的相关知识,
一,printf的限定宽度哦
当我们使用printf的时候我们大家对于printf的打印感觉好像什么都可以打印,无论多宽,例如我们打印
“c语言是世界上最好的语言”
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
printf("c语言是世界上最好的语言");
return 0;
}
1,1printf限定整数
当我们使用printf的时候无论多大都可以打印,但是我们总是需要打印的时候限制我们的量那么,我们就要了解printf有关的知识例如关于他可以限定宽度, 即printf() 允许限定占位符的最⼩宽度。
例如我们打印下面的相关 123
int main()
{
printf("%d\n", 123);
printf("%5d\n",123);
printf("%8d\n", 123);
printf("%10d\n", 123);
return 0;
}
上⾯⽰例中, %5d 表⽰这个占位符的宽度⾄少为5位。如果不满5位,对应的值的前⾯会添加空格。
printf输出的值默认是右对⻬即输出内容前⾯会有空格;如果希望改成左对⻬,在输出内容后⾯添加空
格,可以在占位符的 % 的后⾯插⼊⼀个 - 号
l例如我们打印123
int main()
{
printf("%-d\n", 123);
printf("%-5d\n",123);
printf("%-8d\n", 123);
printf("%-10d\n", 123);
return 0;
}
当然后面的空格是不会少的
int main()
{
printf("%-5d",123); //左对齐
printf("%d\n", 123);
printf("%5d", 123); //右对齐
printf("%d\n", 123);
return 0;
}
1.2printf限定浮点数宽度
我们经常打印浮点数的时候使用的是%f,即单精度浮点数例如我们打印0.5,
int main()
{
printf("%f", 0.5);
return 0;
}
他的后面会出现六位小数,因为⼩数的默认显⽰精度是⼩数点后6位, 如果我们要去对小数限宽,我们就要对printf限定宽度哦,怎么做呢?
例如我们打印1314.521
int main()
{
printf("%f\n", 1314.521);
printf("%12f\n",1314.521);
return 0;
}
上⾯⽰例中, %12f 表⽰输出的浮点数最少要占据12位。由于⼩数的默认显⽰精度是⼩数点后6位,
这里我们占据12位的时候小数点后面就1使用了三位,本身占据了八位(小数点是一位)
所以 1314.521 输出结果的头部会添加1个空格。
1.3printf显示正负号
平时当我们去打印一个正数或者负数的时候,我们会发现printf不会显示正号,
int main()
{
printf("%d\n", 5);
printf("%d", -5);
return 0;
}
当我们想要他去享受的时候,我们可以在%d的前面加个正号。%+d 可以确保输出的数值,总是带有正负号。
int main()
{
printf("%+d\n", 5);
printf("%+d", -5);
return 0;
}
1.4,printf限定⼩数位数
在上面的事例我们对小数限定了宽度的,我们发现他的小数位后面总是带有6位。那么我们如何去限定小数位的位数呢?例如我们去限定1314.521的小数位
int main()
{
printf("%f\n", 1314.521);
printf("%0.3f\n", 1314.521);
printf("%0.4f\n", 1314.521);
return 0;
}
当然可以这样写
int main()
{
printf("%f\n", 1314.521);
printf("%.3f\n", 1314.521);
printf("%.4f\n", 1314.521);
return 0;
}
1.5printf限定⼩数位数和宽度结合
当我们学会上面的知识后就可以结合使用例如我们依旧打印1314.521
int main()
{
printf("%f\n", 1314.521);
printf("%.3f\n", 1314.152); //限定⼩数位数
printf("%10f\n", 1314.152); //限定宽度
printf("%10.3f\n",1314.521);
return 0;
}
当然最⼩宽度和⼩数位数这两个限定值,都可以⽤ * 代替,通过 printf() 的参数传⼊。
int main()
{
printf("%f\n", 1314.521);
printf("%.*f\n",3,1314.152); //限定⼩数位数
printf("%*f\n",10,1314.152); //限定宽度
printf("%*.*f\n",10,3,1314.521);
return 0;
}
1.6printf限定字符串
在平常我们去打印我们的字符串长度的时候,它都是我们所有的字符串都会打印出来,但在某些特殊的情况下,我们要求我们所写的字符串只有部分打印出来怎么实现呢?
int main()
{
printf("%s\n", "I LOVE YOU");
printf("%.1s\n", "I LOVE YOU");
printf("%.6s\n", "I LOVE YOU");
return 0;
}
%s 占位符⽤来输出字符串,默认是全部输出。如果只想输出开头的部分,可以⽤ %.*s 指定输出
的⻓度,其中 * 代表⼀个数字,表⽰所要输出的⻓度
二,printf的占位符(复习)
printf() 的占位符有许多种类,与 C 语⾔的数据类型相对应。下⾯按照字⺟顺序,列出常⽤的占位
符,⽅便查找,具体含义在后⾯章节介绍。
%a :⼗六进制浮点数,字⺟输出为⼩写。
%A :⼗六进制浮点数,字⺟输出为⼤写。
%c :字符。
%d :⼗进制整数。
%e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。
%E :使⽤科学计数法的浮点数,指数部分的 E 为⼤写。
%i :整数,基本等同于 %d
%f :⼩数(包含 float 类型和 double 类型)。
%g :6个有效数字的浮点数。整数部分⼀旦超过6位,就会⾃动转为科学计数法,指数部分的 e
为⼩写。
%G :等同于 %g ,唯⼀的区别是指数部分的 E 为⼤写。
%hd :⼗进制 short int 类型。
%ho :⼋进制 short int 类型。
%hx :⼗六进制 short int 类型。
%hu :unsigned short int 类型。
%ld :⼗进制 long int 类型。
%lo :⼋进制 long int 类型。
%lx :⼗六进制 long int 类型。
%lu :unsigned long int 类型。
%lld :⼗进制 long long int 类型。
%llo :⼋进制 long long int 类型。
%llx :⼗六进制 long long int 类型。
%llu :unsigned long long int 类型。
%Le :科学计数法表⽰的 long double 类型浮点数。
%Lf :long double 类型浮点数。
%n :已输出的字符串数量。该占位符本⾝不输出,只将值存储在指定变量之中。
%o :⼋进制整数。
%p :指针。
%s :字符串。
%u :⽆符号整数(unsigned int)。
%x :⼗六进制整数。
%zd : size_t 类型。
%% :输出⼀个百分号。
标签:1314.521,return,int,long,123,printf,------,新手 From: https://blog.51cto.com/u_16237653/9345630