首页 > 其他分享 >小白printf限定宽度和输出格式------新手必备

小白printf限定宽度和输出格式------新手必备

时间:2024-01-20 14:31:27浏览次数:28  
标签:1314.521 return int long 123 printf ------ 新手

大家好,断更了一个月自己在考试所以没有更新,这里我今年的第一篇文章依旧依旧是新手的printf的相关知识,

一,printf的限定宽度哦

当我们使用printf的时候我们大家对于printf的打印感觉好像什么都可以打印,无论多宽,例如我们打印

“c语言是世界上最好的语言”


#define _CRT_SECURE_NO_WARNINGS 1


#include<stdio.h>
int main()
{

	printf("c语言是世界上最好的语言");

	return 0;
}


小白printf限定宽度和输出格式------新手必备_进制

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;
}

小白printf限定宽度和输出格式------新手必备_进制_02

上⾯⽰例中, %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;
}

小白printf限定宽度和输出格式------新手必备_数位_03

当然后面的空格是不会少的

int main()
{

	printf("%-5d",123); //左对齐
	printf("%d\n", 123);

	printf("%5d", 123); //右对齐
	printf("%d\n", 123);

	return 0;
}

小白printf限定宽度和输出格式------新手必备_占位符_04

1.2printf限定浮点数宽度

我们经常打印浮点数的时候使用的是%f,即单精度浮点数例如我们打印0.5,

int main()
{
	printf("%f", 0.5);

	return 0;
}

小白printf限定宽度和输出格式------新手必备_数位_05

他的后面会出现六位小数,因为⼩数的默认显⽰精度是⼩数点后6位, 如果我们要去对小数限宽,我们就要对printf限定宽度哦,怎么做呢?

例如我们打印1314.521

int main()
{
	printf("%f\n", 1314.521);
	printf("%12f\n",1314.521);
	return 0;
}

小白printf限定宽度和输出格式------新手必备_数位_06

上⾯⽰例中, %12f 表⽰输出的浮点数最少要占据12位。由于⼩数的默认显⽰精度是⼩数点后6位

这里我们占据12位的时候小数点后面就1使用了三位,本身占据了八位(小数点是一位)

所以 1314.521 输出结果的头部会添加1个空格。

1.3printf显示正负号

平时当我们去打印一个正数或者负数的时候,我们会发现printf不会显示正号,

int main()
{
	printf("%d\n", 5);
	printf("%d", -5);
	return 0;
}

小白printf限定宽度和输出格式------新手必备_数位_07

当我们想要他去享受的时候,我们可以在%d的前面加个正号。%+d 可以确保输出的数值,总是带有正负号。

int main()
{
	printf("%+d\n", 5);
	printf("%+d", -5);
	return 0;
}

小白printf限定宽度和输出格式------新手必备_浮点数_08

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;
}

小白printf限定宽度和输出格式------新手必备_占位符_09

当然可以这样写

int main()
{
	printf("%f\n", 1314.521);
	printf("%.3f\n", 1314.521);
	printf("%.4f\n", 1314.521);

	return 0;
}

小白printf限定宽度和输出格式------新手必备_占位符_10

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限定宽度和输出格式------新手必备_数位_11

当然最⼩宽度和⼩数位数这两个限定值,都可以⽤ * 代替,通过 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;

}

小白printf限定宽度和输出格式------新手必备_占位符_12

1.6printf限定字符串

在平常我们去打印我们的字符串长度的时候,它都是我们所有的字符串都会打印出来,但在某些特殊的情况下,我们要求我们所写的字符串只有部分打印出来怎么实现呢?

int main()
{
	printf("%s\n", "I LOVE YOU");

	printf("%.1s\n", "I LOVE YOU");
	printf("%.6s\n", "I LOVE YOU");


	return 0;

}

小白printf限定宽度和输出格式------新手必备_进制_13

%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 类型。

%% :输出⼀个百分号。

小白printf限定宽度和输出格式------新手必备_占位符_14

标签:1314.521,return,int,long,123,printf,------,新手
From: https://blog.51cto.com/u_16237653/9345630

相关文章

  • 视频直播app源码,利用缓存实现连续登录失败后的时间等待
    实现步骤:1、用户在视频直播app源码中发起登录请求2、后台验证是否失败次数过多,账户没有锁定的话就进入下面的步骤;否则直接返回3、验证用户的账号+密码3.1验证成功:删除缓存3.2验证失败:统计最近10分钟时间窗口内的失败次数,如果达到5次则设置锁定缓存,返回图解实......
  • ARC167
    ARC167前言非常不可做的一场,全场数学,打得心累。[ARC167A]ToastsforBreakfastParty传送门link对于任意一个盘子价值形如\((x_i+x_j)^2\)的形式,那么所有的价值加起来一定是\(\sumx_i^2+\sumx_jx_k\)现在要最小化后面那个排个序即可。signedmain(){cin>>......
  • CF1922
    A简单题。发现如果存在匹配点就yes。B简单题。发现\(2^x+2^y\leq2^z(x,y<z)\),所以必定要有两个同样的最大值,然后直接列,两个最大值\(qzh_{i-1}+C^n_2\),三个\(C^n_3\),注意判0。C简单题。注意到走最近一定不比跳劣,所以能走最近就走最近,否则跳。D发现只有部分可能被选到,......
  • Go io包的一些api的用法
    io.Pipe()返回reader和writer,这种机制使得可以进行并发的数据交换;写入到这个writer中的数据会被同步到reader中;io.TeeReader()可以给原始的TeeReader进行分流,另外一个writer可以同时获取到写入的数据;我是不是可以理解成:TeeReader可以包装一个原始的reader,将......
  • Windows Server 2022 中文版、英文版下载 (updated Jan 2024)
    WindowsServer2022中文版、英文版下载(updatedJan2024)WindowsServer2022正式版,2024年1月更新请访问原文链接:https://sysin.org/blog/windows-server-2022/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org此次发布更新了什么?答:版本号,当然还有……2021.0......
  • Threat Simulator (威胁仿真器) 23.12.2 - 入侵与攻击仿真(BAS)平台
    ThreatSimulator(威胁仿真器)23.12.2-入侵与攻击仿真(BAS)平台连续验证您的安全态势,有效抵御最新威胁请访问原文链接:ThreatSimulator(威胁仿真器)23.12.2-入侵与攻击仿真(BAS)平台,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgThreatSimulator威胁仿真器......
  • VMware Aria Automation Orchestrator 8.16 - 现代工作流程自动化平台
    VMwareAriaAutomationOrchestrator8.16-现代工作流程自动化平台请访问原文链接:https://sysin.org/blog/vmware-aria-automation-orchestrator/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org现代工作流程自动化平台VMwareAriaAutomationOrchestratorVMwar......
  • 2024-01-20:用go语言,小扣在探索丛林的过程中,无意间发现了传说中“落寞的黄金之都“, 而
    2024-01-20:用go语言,小扣在探索丛林的过程中,无意间发现了传说中"落寞的黄金之都",而在这片建筑废墟的地带中,小扣使用探测仪监测到了存在某种带有「祝福」效果的力场,经过不断的勘测记录,小扣将所有力场的分布都记录了下来,forceField[i]=[x,y,side],表示第i片力场将覆盖以坐标......
  • MYSQL-数据表基本
    1、创建表createtable表名(列名类型是否可以为空,列名类型是否可以为空)ENGINE=InnoDBDEFAULTCHARSET=utf82、删除表droptable表名3、清空表deletefrom表名truncatetable表名4、修改表添加列:altertable表名add列名类型删除列:alter......
  • RB951Ui-2nD
    RB951Ui-2nD Thefollowingdefaultconfigurationhasbeeninstalledonyourrouter:WelcometoRouterOS!1)SetastrongrouterpasswordintheSystem>Usersmenu2)UpgradethesoftwareintheSystem>Packagesmenu3)Enablefirewall......