当前位置: 首页 > news >正文

海口市网站建设新乡网站设计公司

海口市网站建设,新乡网站设计公司,团购网站,教育类网站建站本文介绍printf函数的一些特殊的格式控制修饰符 1、域宽修饰符 – 数字 对所有格式控制符都有效#xff0c;即便是%%也不例外 宽度修饰符出现在%和格式控制符之间的数字#xff0c;使数据在固定区域打印。如果待打印的数值不能填满位置#xff0c;它的左侧会被天上空…本文介绍printf函数的一些特殊的格式控制修饰符 1、域宽修饰符 – 数字 对所有格式控制符都有效即便是%%也不例外 宽度修饰符出现在%和格式控制符之间的数字使数据在固定区域打印。如果待打印的数值不能填满位置它的左侧会被天上空格以满足填满域宽区域这些数值是右对齐的如果超过了给定域宽输出区域会调整域宽以恰好能容纳该数值而不会把该数值截断。 #include stdio.hint main() {printf(%2d %2d\n, 0, 1);printf(%2d %2d\n, 2, 3);printf(%2d %2d\n, 12, 34);printf(%2d %2d\n, 123, 456);system(pause);return 0; } 2、精度修饰符 - ”. 数字“ ①对于整数格式项%d、%o、%x和%u精度修饰符指定了它们打印数字的最少位数要是待打印的数值小于指定位数那么打印该数值时会在它的前面补0以凑足指定的位数要是到打印的数值大于指定位数那么指定无效打印该数值的全部位数。 #include stdio.hint main() {printf(%.2d %.2d\n, 0, 1);printf(%.2d %2.d\n, 12, 34);printf(%.2d %.2d\n, 123, 456);system(pause);return 0; } ②对于%e、%E和%f格式控制符精度修饰符指定了小数点后应该出现的数字位数只有当精度大于0时才会出现小数点。 #include stdio.h #include math.hint main() {double pi 4 * atan(1.0);printf(%.0f %.1f %.3f %.10f\n, pi, pi, pi, pi);printf(%.0e %.1e %.3e %.10e\n, pi, pi, pi, pi);printf(%.0E %.1E %.3E %.10E\n, pi, pi, pi, pi);system(pause);return 0; } ③对于%g和%G格式控制符来说惊呆修饰符指定了打印数据中有效数字的位数如果小数点之后没有数字那么小数点也不会被打印。 #include stdio.hint main() {printf(%.1g %.1g %.2g %.3g %.8g\n, 1 / 3.0, 10/3.0, 10 / 3.0, 10 / 3.0, 10 / 3.0);printf(%.1G %.1G %.2G %.3G %.8G\n, 1 / 3.0, 10/3.0, 10 / 3.0, 10 / 3.0, 10 / 3.0);system(pause);return 0; } ④用于%s格式控制符指定要从相应的字符串中打印的字符个数。当指定的值小于字符串中字符个数时只输出字符串中的前N个字符N为精度值当指定的大于字符串中字符个数时输出的字符个数为字符串中全部字符的个数。 #include stdio.hint main() {int ret1 0;int ret2 0;int ret3 0;ret1 printf(%.10s\n, abcdefg);ret2 printf(%.5s\n, abcde);ret3 printf(%.3s\n, abcdefg);printf(%d %d %d\n, ret1, ret2, ret3); system(pause);return 0; } 3、标志符 ①- 此标识符后必须跟有域宽才会有意义它的作用是使指定了域宽的数据输出时左对齐。 #include stdio.hint main() {printf(%5d%5d%5d\n, 1, 2, 3);printf(%-5d%-5d%-5d\n, 1, 2, 3);system(pause);return 0; } ② 规定每个待打印的数值在输出时都应以它的符号“”、“-”作为第一个字符。 #include stdio.hint main() {printf(%d\n, 1);printf(%d\n, 0);printf(%d\n, -1);system(pause);return 0; } ③空白字符空格 如果数值是非负数就在它的前面添加一个空格。 PS要是空白字符修饰符与修饰符出现在一起以修饰符为准。 #include stdio.hint main() {printf(% d\n, 1);printf(% d\n, 0);printf(% d\n, -1);printf(% d\n, 1);system(pause);return 0; } ④# %o格式控制符在打印输出时在数字的前面加一个0%x或%X在打印输出时在数字的最前面加一个0x或0X。 #include stdio.hint main() {printf(%#o\n, 12);printf(%#x\n, 24);printf(%#X\n,24);system(pause);return 0; } 对浮点数格式来说#标志符要求小数必须被打印出来即使小数点之后没有数字对于%g和%G来说不会去掉数值尾缀的0. #include stdio.h #include math.hint main() {printf(%.0f %#.0f %g %#g\n, 3.0, 3.0, 3.0, 3.0);system(pause);return 0; } 4、%n %n与其他格式说明符号不同。不向printf传递格式化信息而是用于指出函数已经打印的字符的个数这个数被存储在对应参数整型指针所指向的整数中。 #include stdio.hint main() {int n 0;printf(Hello\n%n, n);printf(%d\n, n);system(pause);return 0; }这儿的n就是我们存储字符个数的整型指针。 PS是不是赶脚有些像用scanf()给n输入一个值 5、使用 * 替换域宽或精度值 有时候因为数据的不同我们可能想使用的域宽或精度值也不同例如字符数组里面每次存储的字符个数可能是不同的那么我们想要不管每次给的字符数是多少都不用改变printf()函数格式控制字符串里的域宽和精度值该怎么做呢。 因为数值的长度在程序中是写“死”的数字magic number那么可能我们经常会这样来定义数组 #define MAXSISE 20 char str[MAXSIZE]; 那么为了方便每次打印str里面存储的字符时不用修改printf()函数格式控制字符串里的域宽和精度值我们可能会这样写 printf(%MAXSIZE.MAXSIZEs, str); 但是预处理器的范围不能作用到字符串的内部所以这样是不可能达到我们的期望的。 而通过一个格式修饰符 * 我们可以很巧妙的做到这一点 #include stdio.h #define MAXSIZE 20int main() {char str[MAXSIZE] Hello world!;printf(%*.*s\n, 20, 20, str);printf(%*%, 8);system(pause);return 0; } 这儿用 * 替换域宽和精度值使printf()的参数列表里依次出现代表域宽的参数和代表精度值的参数,巧妙的避免的预处理器不能作用于字符串内部的问题。
http://www.yutouwan.com/news/320344/

相关文章:

  • 网站建设常用英语自己没有货源怎么开网店
  • 做本地生活圈网站好吗wordpress悬浮广告
  • 深圳宝安网站设计公司上海口碑最好的装修公司排名
  • 域名备案网站建设方案书个人网站备案要什么
  • 上海做外贸网站特别酷炫网站
  • 国外 网站源码做网站硬件
  • 开网站建设公司心得公司网站 钓鱼网站
  • 手机好在百度做网站吗wap建站软件
  • 设计网站p站程序员开发网
  • 金融业反洗钱培训网站库存管理软件免费版
  • 个人网站备案备注信息产品营销
  • pc网站开发制作上海市建设厅网站
  • 合肥网站商城开发东莞企业网站推广多少钱
  • 质量好网站建设费用流量比对网站
  • 资源网站如何做关键词优化按天计费
  • 青岛建设官方网站wordpress整站迁移出现403
  • 公司电商网站建设方案模板创意营销点子
  • 重庆系统建站怎么用北京建网
  • 广州陈村网站建设毕业设计网站只做前端行不行
  • 遵义网站建设oadmin全球排行前50网站开发语言
  • 如何做期货培训网站WordPress4.8中文的把
  • 网站建设图片流程图做网站租服务器多少钱
  • 好的建设网站网络营销外包要多少钱
  • 烟台优化网站公司哪家好高端企业网站定制公司
  • 站长工具网站排名南京润盛建设集团有限公司网站
  • 横岗网站建设公司广告营销顾问
  • 查数据的权威网站国外设计师wordpress主题
  • 非凡网站开发培训免费crm手机版
  • 如何免费自己做网站wordpress 添加友情
  • 怎么做下载类的网站吗dedecms 调用 另一个网站