在C++中处理 CSV 文件

Handling CSV files in C++

本文关键字:CSV 文件 处理 C++      更新时间:2023-10-16

我有一个要求,我需要从如下所示的csv文件中搜索产品条形码。

Sr. No.,Product Barcode,Product Description,Discount (%),Price Per Unit
1,011001,TOILET PAPER,5,40
2,011002,BATHING SOAP,0,27
3,011003,MOISTURIZER,3,95
4,011004,SHAMPOO,0,115
5,011005,CONDITIONER,5,155
6,011006,TISSUE,10,60
7,011007,HAIR OIL,0,75
8,011008,HAIR GEL,0,96
9,011009,BODY LOTION,7,195
10,011010,FACE WASH,0,85

当用户输入条形码时,它应该搜索csv文件,并应该选择每单位价格以及折扣并生成账单。这必须在C++实施。在开发的后期阶段,我还需要更新csv文件内容。例如,如果它有一个"数量"列,显示特定产品的库存存在,并且在该产品销售时,我还需要更新csv字段数量。

请指导我如何搜索csv文件并选取字段。我在网上搜索,但找不到满意的答案。

我正在使用流血开发C++。

我能够使用 getline() 提取输入条形码的产品价格并生成账单。

为你们的回应干杯。

我建议使用libpcre

你可以做这样的事情——

#include <iostream>
#include <vector>
#include <string>
#include <pcre++.h>
using namespace std;
using namespace pcrepp;
int main(int argc, char **argv) {
    string pat = ",";
    vector<string> v;
    string s;
    Pcre p(pat);
    int ctr;
    while( getline(cin, s) ) {
        v = p.split(s);
        vector<string>::iterator i;
        for(i=v.begin(),ctr=0;i!=v.end();i++,ctr++) {
            if(ctr==2) {
                 cout << *i << endl;
            }
        }
    }
    return 0;
}

我同意这对于提取第二列或第 n 列可能有点过分,但我喜欢这种方法,因为 pcre 在您希望从 CSV 文件中提取的文本方面为您提供了很大的自由。