很多人在开发过程中可能都会遇到相对于表格进行读写操作,C++读写表格也有很多种方法,比如说通过ODBC数据库实现,通过解析Excel表格文件,通过OLE/COM的实现。

但是终究需要引用一些文件以及过程繁琐。

我们知道C语言的FILE类对于读写二进制文件非常的方便

比如:

string thetxt="c:\\user\\abc.txt";

FILE *fr; fr=fopen(thetxt,"a+");

打开二进制文件

然后用ofstream 进行读写

ofstream edittxt(thetxt);

……

fclose(fp);最后记得关闭

那么我们能否以这种形式对表格进行处理呢?

下面介绍一种表格格式——csv

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。
CSV文件格式的通用标准并不存在,但是在RFC 4180中有基础性的描述。使用的字符编码同样没有被指定,但是7-bitASCII是最基本的通用编码。

CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。最广泛的应用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的(往往是私有的和/或无规范的格式)。因为大量程序都支持某种CSV变体,至少是作为一种可选择的输入/输出格式。
例如,一个用户可能需要交换信息,从一个以私有格式存储数据的数据库程序,到一个数据格式完全不同的电子表格。最可能的情况是,该数据库程序可以导出数据为“CSV”,然后被导出的CSV文件可以被电子表格程序导入。
“CSV”并不是一种单一的、定义明确的格式(尽管RFC 4180有一个被通常使用的定义)。因此在实践中,术语“CSV”泛指具有以下特征的任何文件:
纯文本,使用某个字符集,比如ASCII、Unicode、EBCDIC或GB2312;
由记录组成(典型的是每行一条记录);
每条记录被分隔符分隔为字段(典型分隔符有逗号、分号或制表符;有时分隔符可以包括可选的空格);
每条记录都有同样的字段序列。
在这些常规的约束条件下,存在着许多CSV变体,故CSV文件并不完全互通。然而,这些变异非常小,并且有许多应用程序允许用户预览文件(这是可行的,因为它是纯文本),然后指定分隔符、转义规则等。如果一个特定CSV文件的变异过大,超出了特定接收程序的支持范围,那么可行的做法往往是人工检查并编辑文件,或通过简单的程序来修复问题。因此在实践中,CSV文件还是非常方便的。

1 开头是不留空,以行为单位。
2 可含或不含列名,含列名则居文件第一行。
3 一行数据不跨行,无空行。
4 以半角逗号(即,)作分隔符,列为空也要表达其存在。
5列内容如存在半角引号(即"),替换成半角双引号("")转义,即用半角引号(即"")将该字段值包含起来。
6文件读写时引号,逗号操作规则互逆。
7内码格式不限,可为 ASCII、Unicode 或者其他。
8不支持特殊字符

也就是说我们可以用普通读写文本的格式去处理csv表格,其每行之间的元素用','来分割即可

当然,excel也支持csv查看、编辑,以及转换其他格式表格的功能

读写csv:

#include <algorithm>
#include<stdio.h>
#include<wchar.h>
#include<stdlib.h>
#include<time.h>
#include<io.h>
#include <string>
#include <iostream>
#include <fstream>
#include <time.h>
using namespace std;
#define MAX_LINE 3000
void f(string inputfile,string outputfile)
{FILE *fp = NULL;char line[MAX_LINE];ofstream outedit(outputfile);if((fp = fopen(inputfile.c_str(),"r")) != NULL){char delims[] = ",";int a,b,c;while (fgets(line, MAX_LINE, fp)){a= atoi(strtok( line, delims ));     b= atoi(strtok( NULL, delims ));c= atoi(strtok( NULL, delims ));outedit<<a+10<<','<<b+100<<','<<c+1000<<endl;}fclose(fp);fp = NULL;}
}int main(int argc, char* argv[])
{string inputfile;string outputfile;printf("input the csv\n");cin>>inputfile;outputfile=inputfile.substr(0,strlen(inputfile.c_str())-4)+"_out.csv";f(inputfile,outputfile);system("pause");return 0;
}

C++读写表格csv——文本与表格完美桥接者相关推荐

  1. 用Python一步读写csv、xlsx表格

    需求 代码 测试 需求 python的内置库csv提供了读写csv表格的方法,第三方库openpyxl 提供了读写xlsx表格的方法. 不过,为了避免每次调用这些库时都要回忆其用法,笔者将基本的读写操 ...

  2. python读取pdf表格_【Python 库】解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比...

    pdf 是个异常坑爹的东西,有很多处理 pdf 的库,但是没有完美的. 一.pdfminer3k pdfminer3k 是 pdfminer 的 python3 版本,主要用于读取 pdf 中的文本. ...

  3. Python:解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比

    pdf 是个异常坑爹的东西,有很多处理 pdf 的库,但是没有完美的. 一.pdfminer3k pdfminer3k 是 pdfminer 的 python3 版本,主要用于读取 pdf 中的文本. ...

  4. 在 Javascript 中将 CSV 显示为表格(简单示例)

    欢迎阅读有关如何读取 CSV 文件并将其显示在 Javascript 中的 HTML 表格中的教程.需要在将 CSV 上传到服务器之前将其显示为 HTML 表格?或者服务器上有一个 CSV 文件需要在 ...

  5. java csv转excel_将CSV转换为Excel表格

    将CSV转换为Excel表格 我正在尝试将CS​​V文件转换为xls. CSV文件看起来像这样: 410E 54B9 C700 0 0 0 0 但是当转换完成的结果是 410E; 54B9; C700 ...

  6. python二维元组_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)

    如何去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  7. R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将图像、文本、表格组合在一起展示

    R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将图像.文本.表格组合在一起展示 目录 R语言使用ggpubr包的ggarrange

  8. UI自动化之特殊处理三(日期控件\表格\富文本)

    日期控件\表格\富文本也是一些常遇到的需要特殊处理的定位 目录 1.日期控件 2.表格 3.富文本 1.日期控件 第一种:输入框属性为:readonly="readonly" # ...

  9. python可以使用二维元组吗_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)...

    怎么去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

最新文章

  1. 将tomcat的session信息通过memcached实现共享
  2. 一条诡异的insert语句
  3. 审计文件的作用以及记录的内容,审计日志的记录,以及审计日志包括的内容
  4. 感觉灵感被掏空?你需要这 9 篇论文来补一补 | PaperDaily #05
  5. 142. Linked List Cycle II
  6. linux中命令date,Linux 中date命令的用法
  7. 夏至与北回归线的故事
  8. python创建字典
  9. Unity WIndows语音识别(一)关键字识别
  10. 简单实用口才训练方法集
  11. Linux学习3 :用户及文件权限管理
  12. 富贵电玩 富贵旺旺 富贵精华版 富贵3 后门 格机问题研究
  13. 平安产险_杭州平安产险:寒风中靓丽的一抹橙坚守者
  14. php读取月日,PHP获取当前时间、年份、月份、日期和天数
  15. Linux系统chmod命令读、写、执行
  16. 饿了么联盟在哪里申请物料
  17. 正则的懒惰性和贪婪性、正则与字符串
  18. 分布式监控:zabbix trapper方式监控
  19. 解决区块链三大问题的利器
  20. php入门学习-----父类子类继承

热门文章

  1. 2 SD配置-企业结构-定义-定义分销渠道
  2. linux内核启动过程2:保护模式执行流程
  3. VMware内虚拟机自适应及最大化窗口调整方式
  4. hive load data inpath 空目录_hive学习笔记之四:分区表
  5. 利用uiautomator2刷金币
  6. 装cv2加速_手动安装OpenCV下的IPP加速库
  7. python的基本功能_二.Python的基本数据类型及常用功能
  8. 一个可以下载Github指定子文件夹的Chrome插件
  9. 混合样本数据增强(Mixed Sample Data Augmentation,MSDA)
  10. 三种方法可以使用StyleGAN预先训的生成器