本文共 1309 字,大约阅读时间需要 4 分钟。
CSV:逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列,通常都是纯文本文件。C++默认没有提供csv读写库,因此自己给予vector简单实现了一下。
写入文件到CSV;
读CSV文件,并按照行输出;
#include#include #include #include #include using namespace std;void WriteToCSV(const char* strFileName,vector > &v){ //写文件 ofstream outFile; outFile.open(strFileName, ios::out); //打开模式可省略 for(int i=0;i > v; std::vector vArray; vArray.push_back("001"); vArray.push_back("alice"); vArray.push_back("25"); v.push_back(vArray); WriteToCSV("TestCSV.csv",v);}void ReadFromCSV(const char* strFileName){ //读文件 ifstream inFile(strFileName, ios::in); string lineStr; vector > strArray; while (getline(inFile, lineStr)) { //打印整行字符串 cout << lineStr << endl; //存成二维表结构 stringstream ss(lineStr); string str; vector lineArray; //按照逗号分隔 while (getline(ss, str, ',')) lineArray.push_back(str); strArray.push_back(lineArray); }}void TestReadFromCSV(){ cout<<"ReadFromCSV:\n"; ReadFromCSV("TestCSV.csv");}int main(int argc, char const *argv[]){ /* code */ TestWriteToCSV(); TestReadFromCSV(); return 0;}
当前已在Ubuntu16.04 g++ 5.5.0上测试通过。
转载地址:http://nflgi.baihongyu.com/