printf()中的格式问题
来源:互联网 发布:巴黎香榭花果茶 淘宝 编辑:程序博客网 时间:2024/05/20 16:35
本文实例采用VS2010验证。
本文为原创文章,转载请注明:http://write.blog.csdn.net/postedit/52366608
printf()函数在控制台应用程序中经常用到,其原型如下:
针对整型、浮点数、字符串中的format,现总结如下,以作备忘。
//对于整型和字符串型数据,x代表数据总共占据的空间长度,当其小于输出数据本身的长度时,按原数据输出;当其大于输出数据本身长度时,用空格补充。通过%之后有 //无“-”判断数据左对齐还是右对齐
printf("%xd",666);
printf("%xs","abc");
//对于浮点数,除具有前述特点外,还应注意,这种输出格式下,浮点数小数点之后总是占据6位(以0补充),另外小数点也占据一位,故而原数据可以看作6.660000,总共 //占有8位,再用前述规则判断。
printf("%xf",6.66);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//x代表输出数据占据的空间长度,y代表输出数据的精度,当y<原数据长度时,按原数据输出;x>y>原数据长度时,将原数据用0补充至y长度;当y>x且y>原数据长度时,将原
//数据用0补充至y长度输出
printf("%x.yd",666);
//x代表输出数据占据的空间长度,y代表输出数据的精度,当y<原数据长度时,将原数据从左至右截取y长度输出;y>原数据长度时,将原数据输出,总长度取决于X和原数据
//长度
printf("%x.ys","abc");
//x代表输出数据占据的空间长度,y代表输出数据小数点后的长度,当y<原数据小数点后数据长度时,将小数点后的数据长度截至y输出(舍位还是进1有待考虑,我验证的是 //四舍六入,若是5则先看其后有没有数据,有的话进位,没有的话看5前面的数据,为奇数舍去,为偶数进位。这和普遍约定的“四舍六入五成双”有点出入);当y>原数据小 //数点后数据长度时,将小数点后的数据长度用0补充至y输出
printf("%x.yf",6.66);
代码如下:
</pre><pre name="code" class="html">// _printf_.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){//整型printf("#####\n");//5个#printf("%2d\n",666);printf("%5d\n",666);//右对齐printf("%-5d\n",666);//左对齐 //字符串printf("#####\n");//5个#printf("%2s\n","abc");printf("%5s\n","abc");//右对齐printf("%-5s\n","abc");//左对齐//浮点数printf("##########\n");//10个#printf("%2f\n",6.66);printf("%10f\n",6.66);printf("%-10f\n",6.66); ///////////////////////////////////////////printf("#####\n");//5个#printf("%5.2d\n",666);printf("%5.5d\n",666);//右对齐printf("%5.8d\n",666);//左对齐printf("#####\n");//5个#printf("%5.2s\n","abc");printf("%5.5s\n","abc");//右对齐printf("%5.8s\n","abc");//左对齐printf("#####\n");//5个#printf("%5.1f\n",6.55);printf("%5.1f\n",6.551);printf("%5.1f\n",6.65);printf("%5.5f\n",6.66);getchar();return 0;}
输出结果如下:
暂且总结这样的规律:整型数据不能改变其值,但是可以左边补0;字符串数据可以截断但是不能添加别的字符补充长度;输出数据的长度需要综合考虑输出精度y、原数据长度以及给定长度x。
本人也是初学C++,文中可能会有错误,总结也不够好,希望大家多多指导,共同进步!
- printf()中的格式问题
- printf 格式问题
- printf格式问题
- C语言的printf格式中的-问题(8)
- printf中的 %.*s格式解释
- printf中的format格式 %zd
- printf等函数中的格式控制
- Linux中的格式输出---Printf用法
- Linux中的格式输出---Printf用法
- Linux中的格式输出---Printf用法
- printf格式
- printf格式
- printf格式
- printf格式
- printf格式
- printf 格式
- printf格式
- printf格式
- 30分钟手把手教你学webpack实战
- iOS开发基础block的形式讲解
- 给list<class>赋值
- Go语言基础:函数
- C#使用Log4Net记录日志
- printf()中的格式问题
- (LeetCode)Remove Linked List Elements --- 删除节点元素
- System.getProperty("user.dir")
- HDU1796 简单容斥
- Centos下软件安装与卸载
- iOS pthread创建中pthread_attr_t参数详解
- Android数据存储五种方式总结
- ubtun下svn的安装
- webpack前端模块加载工具