printf格式控制字符

电脑杂谈  发布时间:2020-07-20 10:08:04  来源:网络整理

printf输出文字_printf格式输出12个0_printf输出

首先,是完整的格式

%-0 m.n l或h格式字符

①%: 表示格式描述的开始符号,必不可少.

②-: 是-表示左对齐输出,如果省略,则表示右对齐输出.

③0: 0表示指定空间用0填充,如果省略,则不填充指定空间.

④m.n: m是指字段宽度,如果数据位数小于m,则在左端填写一个空格,如果大于m,则根据实际数输出数字.

n表示精度,用于指示输出实数的小数位数. 如果未指定nprintf格式输出12个0,则隐式精度为n = 6位.

⑤l或h: l表示long表示整数,而double表示实数. h用于将整数格式的字符修改为short.

两个,设置格式字符

①d格式: 用于输出十进制整数. 有几种用法:

%d: 根据整数数据十进制的实际长度输出.

%md: m是指定输出字段的宽度. 如果数据的位数小于m,则在左端添加一个空格;如果数据的位数大于m,则输出实际的位数.

%ld: 输出长整数数据.

②格式o: 以无符号八进制格式输出整数.

printf输出_printf格式输出12个0_printf输出文字

%d: 根据整数数据八进制的实际长度输出.

%lo: 长整数可以格式输出

%mo: 指定要以格式输出的字段的宽度

③x格式: 以无符号十六进制格式输出整数.

%x: 根据整数数据的实际长度十六进制输出.

%lx: 可以格式输出长整数

%mx: 指定要以格式输出的字段的宽度

④u格式: 以无符号十进制形式输出整数.

%u: 根据无符号整数数据十进制的实际长度输出.

%lu: 长整数可以格式输出

%mu: 指定要以格式输出的字段的宽度

⑤c格式: 输出一个字符.

⑥s格式: 用于输出字符串. 有几种用法

%s: 例如: printf(“%s”printf格式输出12个0,“ CHINA”)输出“ CHINA”字符串(不包括双引号).

printf格式输出12个0_printf输出文字_printf输出

%ms: 输出字符串占用m列. 如果字符串长度大于m,则将输出所有字符串. 如果字符串长度小于m,则会在左侧添加一个空格.

%-ms: 如果字符串长度小于m,则在列m的范围内,字符串将向左倾斜,在右边带有空格.

%m.ns: 输出占据m列,但是仅采用字符串中的左端n个字符. 这n个字符在第m列的右侧输出,在左侧有空格.

%-m.ns: 其中m和n与上面的含义相同,并且m列范围的左侧输出n个字符,右侧输出空格. 如果n> m,则自动获取n的值,即保证正常输出n个字符.

⑦f格式: 用于输出实数(包括单精度和双精度),以十进制形式输出. 有几种用法:

%f: 不指定宽度,输出整数部分并输出6个小数位.

%m.nf: 输出总共占用m列,其中n位小数. 如果值的宽度小于m,请在左端添加一个空格.

%-m.nf: 输出总共占据n列,其中n位小数. 如果宽度值小于m,请在右端添加一个空格.

⑧e格式: 以指数形式输出实数. 可以使用以下形式:

%e: 数字部分(也称为尾数)输出6个小数位,指数部分占用5或4位数字.

%m.ne和%-m.ne: m,n和“-”的含义与以前相同.

这里n表示数据数字部分的小数位数,m表示整个输出数据的宽度.

⑨p格式: 输出指针地址

三个. 例子

printf输出文字_printf输出_printf格式输出12个0

如果要输出字符“%”,则应在“格式控制”字符串中用两个连续的%表示,例如:

printf(“%f %%”,1.0 / 3);

它输出0.333333%.

m.n的格式还可以通过以下方式表示

char ch [20];

printf(“%*. * s \ n”,m,n,ch);

前面的*定义总宽度,后面的*定义输出数量. 分别对应于外部参数m和n.

此方法的优点是您可以在语句外部为参数m和n分配值以控制输出格式.

如何使用printf实现可变的字段宽度?也就是说,我想在运行时确定宽度,而不是使用%8d

使用printf(“%* d”,width,x)

格式说明符中的星号表示参数列表中的int值用于指示字段的宽度.

########### printf正确(首先)进入堆栈###########

#include

#include

#include

int main()

{

uint64_t a = 0x0000000100000002;

int rc = -5;

printf(“%llu leon%d \ n”,a,rc);

//出: 4294967298里昂-5

printf(“%d leon%d \ n”,a,rc);

//出: 2里昂1

printf(“再次%d%d%d \ n”,a,rc);

//出: 再次2 1 -5

uint32_t b;

memcpy(&b,&a,sizeof(uint32_t));

printf(“%d kjfsfljs \ n”,b);

//输出: 2 kjfsfljs(描述为小端)

返回0;

}


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-286951-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...