CSV文件C++操作库:MiniCSV
来源:互联网 发布:php 视频直播 开源 编辑:程序博客网 时间:2024/06/07 00:34
MiniCSV 是一个基于c++文件流的小巧而灵活的 CSV 库。
Writing
We see an example of writing tab-separated values to file usingcsv::ofstreamclass. Tab is a perfect separator to use because it seldom appear in the data. I have once encountered a comma in company name which ruined the CSV processing.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "minicsv.h"
struct
Product
{
Product() : name(
""
), qty(0), price(0.0f) {}
Product(std::string name_,
int
qty_,
float
price_)
: name(name_), qty(qty_), price(price_) {}
std::string name;
int
qty;
float
price;
};
int
main()
{
csv::ofstream os(
"products.txt"
, std::ios_base::out);
os.set_delimiter(
'\t'
);
if
(os.is_open())
{
Product product(
"Shampoo"
, 200, 15.0f);
os << product.name << product.qty << product.price << NEWLINE;
Product product2(
"Soap"
, 300, 6.0f);
os << product2.name << product2.qty << product2.price << NEWLINE;
}
os.flush();
return
0;
}
NEWLINEis defined as'\n'. We cannot usestd::endlhere becausecsv::ofstreamis not derived from thestd::ofstream.
回到顶部
Reading
To read back the same file,csv::ifstreamis used andstd::coutis for displaying the read items on the console.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include
"minicsv.h"
#include <iostream>
int
main()
{
csv::ifstream is(
"products.txt"
, std::ios_base::in);
is.set_delimiter(
'\t'
);
if
(is.is_open())
{
Product temp;
while
(is.read_line())
{
is >> temp.name >> temp.qty >> temp.price;
// display the read items
std::cout << temp.name <<
","
<< temp.qty <<
","
<< temp.price << std::endl;
}
}
return
0
;
}
The output in console is as follows.
Shampoo,200,15 Soap,300,6
项目主页:http://www.open-open.com/lib/view/home/1427182646824
0 0
- CSV文件C++操作库:MiniCSV
- java用CSV库操作csv文件
- php 操作csv文件
- java操作csv文件
- csv文件读写操作
- java操作csv文件
- Java 操作CSV 文件
- java 操作csv文件
- java操作CSV文件
- Csv文件操作接口
- python操作csv文件
- springbatch操作CSV文件
- java操作csv文件
- 操作csv文件
- CSV文件简单操作
- java操作csv文件
- java--csv文件操作
- java 操作csv文件
- TI的CC2530使用2400波特率的步骤,协议Z-Stack Home 1.2.2.42930
- Data Vault初探(八) —— 定期装载_Kettle_链接表
- 使用Android Accessibility实现免Root自动批量安装功能
- android监听html事件
- asp.net通用的sql插入与修改语句,一劳永逸
- CSV文件C++操作库:MiniCSV
- 插入排序与归并排序及优化
- 梭哈
- java class文件结构
- Java开发中的23种设计模式详解
- System.getProperty获取java虚拟机中设置的参数
- java list<Map<String,Object>>排序
- HDU 1535 Invitation Cards 单源最短路
- linux下硬盘读写速度测试