【问题标题】:Qt separating csv file and storing to differnt variablesQt分离csv文件并存储到不同的变量
【发布时间】:2019-05-05 11:23:46
【问题描述】:
#include <QCoreApplication>
#include"administrative.h"
#include"employee.h"
#include"technical.h"
#include<iostream>
#include<string>
#include<QVector>
#include<QFile>
#include<QTextStream>
#include<fstream>
using namespace std;
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QFile t("C:\\Users\\User006\\Documents\\EmployeeCSV_Vector\\technical.csv");
           
        if (!t.open(QFile::ReadOnly | QFile::Text))
            cout << "ERROR: File open";

        QTextStream in(&t);
        while (!in.atEnd())
        {
                         QString line=in.readLine();
           for (int i=0;i<line.size();i++)
            {
               QString item=line.split(",");
                QString name=item;
                QString empCode=item;
                QString designation=item;
                QString prCode=item;
                QString BP=item;
                QString DA=item;
                QString PA=item;
                cout<<name.toStdString()<<"\t";

            }
                       
 }
 t.close();

我写的上面的代码是我写的分隔CSV文件的代码。 Technical.csv 文件包含一些用逗号分隔的值行,我需要将每行中的每个值分别放在不同的变量中。但我无法做到这一点。请帮我解决问题。

【问题讨论】:

  • 为什么是 for 循环?
  • 为什么要使用 Qt?只需使用std::fstream

标签: c++ qt visual-c++ c++14 c++17


【解决方案1】:

根据文件结构(它是否包含行/列标题、单行/多行?)您使用QString::split() 来获得每行QStringList。然后根据您的 csv 结构知识将字符串列表项分配给变量。

【讨论】:

    【解决方案2】:

    我想知道您的代码是否正在编译。根据 Qt,QString::split 方法返回一个 QStringList。拆分后,您拥有列表中的项目。假设所有列都符合预期,您可以将文件解释如下:

       QTextStream in(&t);
        while (!in.atEnd())
        {
           QStringList items = in.readLine().split(',');
           QString name = items.at(0);
           ...
           QString PA   = items.at(6); 
           std::cout<<name.toStdString()<<std::endl;
           // do some processing 
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-19
      • 1970-01-01
      • 1970-01-01
      • 2015-10-13
      • 1970-01-01
      • 2020-07-31
      相关资源
      最近更新 更多