纯手动的c语言格式化输出函数

纯手动的c语言格式化输出函数

ID:9092120

大小:144.50 KB

页数:21页

时间:2018-04-17

纯手动的c语言格式化输出函数_第1页
纯手动的c语言格式化输出函数_第2页
纯手动的c语言格式化输出函数_第3页
纯手动的c语言格式化输出函数_第4页
纯手动的c语言格式化输出函数_第5页
资源描述:

《纯手动的c语言格式化输出函数》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、纯手动的C语言格式化输出函数分类: C/C++作者:maozefa摘自:CSDN技术Blog链接地址:http://www.cnblogs.com/maozefaprintf系列函数,包括fprintf、sprintf函数等,其功能是将C语言的所有基本数据类型按用户要求进行格式化输出。  printf函数几乎是所有学习C语言的人接触到的第一个函数,是C语言标准中使用频率最高的函数。  printf函数是C语言标准函数中最著名的可变参数函数,看见printf这个函数名,就想起了C语言的说法一点也不过分,因此,可以说是C语言标准函数中的最具标志性的函数。  printf系列函数。在DOS环境

2、下,这一系列输出函数涵盖了PC机所能用到的所有输出设备,所以printf系列函数也是C语言中最复杂的函数。  当然,随着DOS时代的结束,不仅printf系列函数的作用减弱了,就连C语言本身也被压缩到了最小的应用领域。   本文写的sprintfA函数,也是应一个小友要求写的几个函数之一,包括我昨天发布的《自己动手写C语言浮点数转换字符串函数》中的FloatToStr函数,是用来学习用的。之所以取名为sprintfA,不仅是区别系统本身的sprintf函数,同时也因为在Windows下,A表示的是传统的ANSI函数。因为在Windows下,printf系列函数也“与时俱进”了,如wpri

3、ntf等就是在宽字符环境下的输出函数。由于我在sprintfA函数中使用了Windows的宽字符转换函数,因此该函数只适用于Windows环境。  由于sprintfA函数代码比较长,将分为多篇文章发布,《自己动手写C语言浮点数转换字符串函数》一文中的代码也应算作一篇:  一、数据定义:viewplainprint?1.typedef struct  2.{  3.    INT type;       // 数据长度类型  4.    INT width;      // 数据最小宽度  5.    INT precision;  // 数据精度  6.    BOOL left;  

4、    // 是否居左  7.    BOOL zero;      // 是否前导零  8.    INT decimals;   // 浮点数: 1强制小数位; 16进制: -1: 0x, 1: 0X  9.    INT negative;   // 符号:-1: '-'; 1: '+'  10.    LPSTR param;    // 参数指针  11.}FormatRec;  12.  13.typedef long long           LLONG, *PLLONG;  14.typedef unsigned long long  ULLONG, *PULLONG

5、;  1.  2.#define TYPE_CHAR       0  3.#define TYPE_SHORT      1  4.#define TYPE_GENERAL    2  5.#define TYPE_LONG       3  6.#define TYPE_LLONG      4  7.  8.#define PTR_SIZE        sizeof(VOID*)  9.#define TypeSize(size)  (((size + PTR_SIZE - 1) / PTR_SIZE) * PTR_SIZE)  10.  11.#define TS_PTR   

6、       PTR_SIZE  12.#define TS_CHAR         TypeSize(sizeof(CHAR))  13.#define TS_WCHAR        TypeSize(sizeof(WCHAR))  14.#define TS_SHORT        TypeSize(sizeof(SHORT))  15.#define TS_INT          TypeSize(sizeof(INT))  16.#define TS_LONG         TypeSize(sizeof(LONG))  17.#define TS_LLONG     

7、   TypeSize(sizeof(LLONG))  18.#define TS_FLOAT        TypeSize(sizeof(FLOAT))  19.#define TS_DOUBLE       TypeSize(sizeof(double))  20.#define TS_EXTENDED     TypeSize(sizeof(EXTENDED))  21.  22.#define CHAR_SPACE    

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。