#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();
这是代码。请帮助我做到这一点。 technical.csv文件包含一些用逗号分隔的值,它是一个csv文件。我需要在每个行中分别使用不同的变量值。请为我提供帮助。谢谢
答案 0 :(得分:0)
根据文件结构(它是否包含行/列标题,单行/多行?),您可以使用QString::split()
获得每行QStringList
。然后,根据您的csv结构知识将字符串列表项分配给变量。
答案 1 :(得分:0)
我想知道您的代码是否正在编译。根据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
}