zoukankan      html  css  js  c++  java
  • C++解析csv文件

    这里提供一个简单又非常可靠的办法来解析csv文件或字符串:boost的tokenizer库,而且仅需要包含头文件,无需编译。
    少废话,直接上代码。

    #include<iostream>
    #include<boost/tokenizer.hpp>
    #include<string>
    #include<fstream>
    
    void parse_csv_line(const std::string& s)
    {
        boost::tokenizer<boost::escaped_list_separator<char> > tok(s);
        for(boost::tokenizer<boost::escaped_list_separator<char> >::iterator beg=tok.begin(); beg!=tok.end();++beg){
            std::cout << *beg << "\n";
        }
    }
    
    int main()
    {
        std::string s = "Field 1,\"putting quotes around fields, allows commas\",Field 3";
        //parse_csv_line(s);
        
        std::ifstream ifs(".\\data.csv");
        if (!ifs.is_open())
            return 0;
        while (std::getline(ifs, s))
        {
            parse_csv_line(s);
            std::cout << "--------------\n";
        }
        ifs.close();
    }
    

    代码简单到不用解释。boost::tokenizer<boost::escaped_list_separator<char> > tok(s); 一个容器就可以,然后遍历容器就能得到每个值。

  • 相关阅读:
    string用法
    动手动脑
    你已经创建了多少个对象?
    动手动脑
    课程作业2
    课程作业1
    课程作业2
    《大道至简》第一章观后感
    java虚拟机内存区域
    Gitbook安装使用教程
  • 原文地址:https://www.cnblogs.com/tszdev/p/15655494.html
Copyright © 2011-2022 走看看