gpt4 book ai didi

C++。将 csv 文件加载到 2D vector

转载 作者:搜寻专家 更新时间:2023-10-31 02:16:24 28 4
gpt4 key购买 nike

<分区>

我已经将一个 CSV 文件 (platforms.csv) 加载到一个 2D vector 中,看起来没有问题,但是当我从 [0][0] 操作字符串时> 它表现得很奇怪。有人可以帮我找出问题所在吗?

我的目标是简单地将 CSV 文件加载到二维 vector 中,并能够像处理任何其他字符串一样处理这些字符串。这个初始 CSV 文件包含其他 CSV 文件的名称(没有 .csv 扩展名),所以我最终想将 .csv 添加到 中的所有字符串加载到 platformsCSV 中的 platforms.csv

platforms.csv 的内容很简单:

PrestaShop
osCommerce

我得到的输出是:

PrestaShop
osCommerce

.csvtaShop
osCommerce.csv

这是我的代码:

#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <string>
using namespace std;

void readCSV(string &readFileName, vector< vector<string> > &output, int &colCount, int &rowCount)
{
fstream file(readFileName, ios::in);

if(!file.is_open())
{
cout << "File not found!\nEnter correct file name: ";
cin >> readFileName;
}

colCount = 0, rowCount = 0;
string csvLine;
while( getline(file, csvLine) )
{
istringstream csvStream(csvLine);
vector<string> csvColumn;
string csvElement;
while( getline(csvStream, csvElement, ',') )
{
csvColumn.push_back(csvElement);
colCount++;
}
output.push_back(csvColumn);
rowCount++;
}
colCount=colCount/rowCount;
file.close();
}

void writeCSV(string &writeFileName, vector< vector<string> > &csvData, int &colCount, int &rowCount)
{
ofstream myfile;
myfile.open (writeFileName);
int x = 0, y = 0;
while(y<rowCount) {
x=0;
while (x<colCount-1) {
myfile << csvData[y][x] << ",";
x++;
}
myfile << csvData[y][x] << "\n";
y++;
}
myfile.close();
}



int main()
{
int colCount, rowCount;

string platformsFile = "platforms.csv";
vector< vector<string> > platformsCSV;

readCSV(platformsFile, platformsCSV, colCount, rowCount);
cout << "\n";
cout << "\n" << platformsCSV[0][0];
cout << "\n" << platformsCSV[1][0];

string x = platformsCSV[0][0] + ".csv";
string y = platformsCSV[1][0] + ".csv";
cout << "\n";
// What's wrong here???
cout << "\n" << x;
cout << "\n" << y;
cout << "\n";

return 0;

}

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com