C++ c++;从csv文件到结构向量的输入
大家好,我正在尝试将所有逗号分隔的文本输入到一个结构向量中,但是由于某种原因,cdv文件中的double和int值不会被传输到结构向量中。你能告诉我我做错了什么吗 先谢谢你C++ c++;从csv文件到结构向量的输入,c++,csv,vector,struct,C++,Csv,Vector,Struct,大家好,我正在尝试将所有逗号分隔的文本输入到一个结构向量中,但是由于某种原因,cdv文件中的double和int值不会被传输到结构向量中。你能告诉我我做错了什么吗 先谢谢你 #include <iostream> #include <fstream> #include <vector> #include <iomanip> #include <string> #include <cstdlib> using namesp
#include <iostream>
#include <fstream>
#include <vector>
#include <iomanip>
#include <string>
#include <cstdlib>
using namespace std;
struct dailyValues
{
string name;
string station_name;
double elevation;
double latitude;
double longitude;
int date;
int maxPn;
int tMax;
int tMin;
int observation;
};
int main()
{
ifstream infile;
infile.open("finalc++.csv");
string temp;
vector <dailyValues> allDays;
dailyValues day;
while (!infile.eof()) {
getline(infile, day.name, ',');
getline(infile, day.station_name, ',');
getline(infile, temp, ',');
day.elevation = stod(temp);
getline(infile, temp, ',');
day.latitude = stod(temp);
getline(infile, temp, ',');
day.longitude = stod(temp);
getline(infile, temp, ',');
day.date = stoi(temp);
getline(infile, temp, ',');
day.maxPn = stoi(temp);
getline(infile, temp, ',');
day.tMax = stoi(temp);
getline(infile, temp, ',');
day.tMin = stoi(temp);
getline(infile, temp, ',');
day.observation = stoi(temp);
allDays.push_back(day);
}
for (int i = 0; i < 30; i++){
cout << allDays[i].name << endl;
cout << allDays[i].station_name << endl;
}
infile.close();
return 0;
}
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
结构dailyValues
{
字符串名;
字符串站名;
双立面;
双纬度;
双经度;
国际日期;
int-maxPn;
int tMax;
int tMin;
内部观察;
};
int main()
{
河流充填;
infle.open(“finalc++.csv”);
字符串温度;
病媒全天;
每日价值观日;
而(!infle.eof()){
getline(infle,day.name,,);
getline(infle,day.station_name,',');
getline(填充,临时“,”);
日标高=stod(温度);
getline(填充,临时“,”);
日纬度=stod(温度);
getline(填充,临时“,”);
日经度=stod(温度);
getline(填充,临时“,”);
day.date=stoi(温度);
getline(填充,临时“,”);
day.maxPn=stoi(温度);
getline(填充,临时“,”);
day.tMax=stoi(温度);
getline(填充,临时“,”);
day.tMin=stoi(温度);
getline(填充,临时“,”);
观察天数=stoi(温度);
所有天。向后推(天);
}
对于(int i=0;i<30;i++){
无法使用调试器并单步执行代码。观察变量temp
以查看它是否有逗号。我在CSV中计算了9个逗号,在代码中计算了10个逗号。它是第一条记录,可以吗?而不是其他记录?创建一个只有一条记录的文件。@thomasatthews-temp
不应该有逗号。分隔符被读取并丢弃。