java中printf的详细用法

电脑杂谈  发布时间:2020-05-28 07:12:49  来源:网络整理

java中printf输出格式_java调用类中函数输出_printf输出二进制格式

当前printf支持以下格式:

          %c        单个字符 
          %d        十进制整数 
          %f        十进制浮点数 
          %o        八进制数 
          %s        字符串 
          %u        无符号十进制数 
          %x        十六进制数 
          %%        输出百分号% 

printf格式控件的完整格式:

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

以下是格式说明的每个组成部分的说明:

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

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

③0: 0表示指定的间隙用0填充,如果省略,则表示指定的间隙未填充.

④m.n: m表示字段宽度,即相应的输出项在输出设备上占据的字符数. N代表准确性. 用于描述输出实数的小数位数. 指定n时,隐含精度为n = 6位数字.

⑤l或h: l整数类型是long类型,实数类型是double类型. h用于将整数类型的格式字符修改为短类型.

-----------------------------------

设置字符格式

java中printf输出格式_java调用类中函数输出_printf输出二进制格式

格式字符用于指定输出项目的数据类型和输出格式.

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

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

%md: m是指定输出字段的宽度. 如果数据的位数小于m,则左端将填充空格,如果数据的位数大于mjava中printf输出格式,则将根据实际的位数进行输出.

%ld: 输出长整数数据.

②o格式: 以无符号八进制形式输出整数. 对于长整数java中printf输出格式,可以使用“%lo”格式进行输出. 您还可以指定字段宽度并以“%mo”格式输出.

示例:

   main() { 
     int a = -1; 
     printf("%d, %o", a, a); 
   } 

运行结果: -1,177777

程序分析: -1为存储单元中的(1111111111111111)2(以补码形式存储),转换为八进制数为(177777)8.

③x格式: 以无符号十六进制形式输出整数. 对于长整数,可以使用“%lx”格式进行输出. 您还可以指定字段宽度并以“%mx”格式输出.

④u格式: 以无符号十进制形式输出整数. 对于长整数,可以以“%lu”格式输出. 还可以指定字段宽度并以“%mu”格式输出.

java中printf输出格式_printf输出二进制格式_java调用类中函数输出

⑤c格式: 输出字符.

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

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

%ms: 输出字符串占用m列. 如果字符串本身的长度大于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格式: 以指数形式输出实数. 可以使用以下形式:

printf输出二进制格式_java调用类中函数输出_java中printf输出格式

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

%m.ne和%-m.ne: m,n和“-”字符的含义与以前相同. 这里的n表示数据数字部分的小数位数,m表示整个输出数据所占的宽度.

⑨g格式: 自动选择f格式或e格式中较短的一种进行输出,并且不会输出无意义的零.

-----------------------------------

有关printf函数的进一步说明:

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

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

输出0.333333%.

-----------------------------------

对于单精度数字,使用%f格式字符输出时,只有前7位是有效数字,而小数位是6.

对于双精度数字,使用%lf格式的字符输出时,前16位是有效数字,而6位是十进制数字.

####################################拾遗######## ###############################

printf输出二进制格式_java中printf输出格式_java调用类中函数输出

由专家指出

m.n的格式也可以表示如下(示例)

char ch [20];

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

前面的*表示总宽度,后面的*表示输出数量. 分别对应于外部参数m和n. 我认为这种方法的优点是可以在语句外部分配参数m和n来控制输出格式.

--------------------------------------------------- ---------------------------------

今天看到了另一种输出格式%n,可以将输出字符串的长度值分配给变量,请参见以下示例:

int slen;

printf(“ hello world%n”和slen);

该变量在执行后被分配值为11.

当我不记得时,它仍然非常有帮助,特别是scanf的格式化输入,这让我很汗. 我过去了解得太少了. 原始常规也可以在内部使用.

阅读源代码时,我还发现了上面提到的一些内容. 慢慢地为自己和再次阅读的读者积累并享受它.

“ UNIX系统编程”的第9页(英语版P15):

fprintf(stderr,“ a at%p and \ nx at%p \ n”,(void *)a,(viod *)&x);

它提到%p,我将其理解为打印指针地址的格式.

--------------------------------------------------- -----------------------------


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

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

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