开源夏令营之foldcolumn工具及解决方案(五)数值精度处理实现
来源:互联网 发布:怎么改mac地址 编辑:程序博客网 时间:2024/06/10 23:03
哪些列需要处理精度
满足下面两个条件的列才处理精度,否则原样输出:
(1)用户指定需要处理精度;
(2)该列是有效数值列,有效数值列要求列数据具有如下格式,且前缀和后缀中不能有数值,当然前后缀可以为空(参见链接),否则被认为是含多个数值而原样输出。每读入一行数据,在根据分隔符断列时,识别该列是否是有效数值列。
(这样实现比较简单,而且后面还可以判断前后缀的有效性,开始想了很多种不是有效数据列的情况,一一进行排除实现,没从 前缀+数值+后缀 这种格式考虑,导致实现起来很繁琐,浪费了不少时间。)
数值精度处理实现
如上面那样识别出数值部分后,处理精度就比较简单,然后将前缀+处理好精度的数值+后缀重新整理成字符形式nStr(称原来的列数据为str) , 以方便使用以前的自动换行输出列模块进行输出。由于nStr与str长度可能不能,如果将nStr还放在str原来的存储位置,需要移动后面列的数据,所以重新为nStr开辟了存储空间,并且将列的begin,end,cur指向此处相应位置。为什么这样做?因为读入一行数据断列后,各列的数据还是在原来位置存储,只是加了起始、结束索引,如下面:
(1)从文件(或其他)读入一行数据,保存在线性空间内,将数据按分隔符断列,为每列标记起始begin、结束位置end,并且将当前输出位置cur(用于输出)设为列起始位置如下:
(2)根据每列的列宽,输出每列的一行(超宽断行),并更新每列的当前位置,直到各列的当前位置等于各自的结束位置,然后重复(1)。
效果
下面是精度为3,2位时,以表格样式3的输出
0 0
- 开源夏令营之foldcolumn工具及解决方案(五)数值精度处理实现
- 开源夏令营之foldcolumn工具及解决方案(四)数值精度与对齐方式处理
- 开源夏令营之foldcolumn工具及解决方案(一)
- 开源夏令营之foldcolumn工具及解决方案(三)表格列超长自动换行实现
- 开源夏令营之foldcolumn工具及解决方案(二)确定表格属性、绘制表格
- 开源夏令营之foldcolumn工具及解决方案(六)制作manpage与Makefile
- 开源夏令营之foldcolumn工具及解决方案(七)测试与总结
- 开源夏令营之foldcolumn工具及解决方案之box-drawing character
- 开源夏令营之foldcolumn工具及解决方案之获取终端宽度
- 开源夏令营之foldcolumn工具及解决方案之中期总结
- 开源夏令营之foldcolumn工具及解决方案--学习制作manpage
- [开源夏令营][五] Docker remote API 之 容器篇
- 多精度数值处理
- CSDN开源夏令营 基于Compiz的switcher插件设计与实现之compiz特效插件介绍及特效实现
- 开源夏令营之项目汇报6(中期报告)
- 【CSDN开源夏令营】 基于Web的SSH客户端,实现跨平台的云服务管理(五)模拟复制粘贴功能的实现
- 开源夏令营(1)
- 开源夏令营(2)
- 谷歌Android遭遇“颠覆”危机
- C++11线程指南(3)--右值与左值
- 杭电acm2089 hdu-acm-2089不要62解题报告
- 如何提高自己的阅读能力和理解能力?
- poj 1056 IMMEDIATE DECODABILITY 字典树
- 开源夏令营之foldcolumn工具及解决方案(五)数值精度处理实现
- Matrix multiplication(bitset)
- 设计模式06_原型模式
- Linux下的压缩解压缩命令详解
- 防沉迷与网络管制
- socket编程 及select poll epoll示例
- IOS开源项目索引
- Linux快速启动工具(中期报告)
- IOS如何使用第三方字体