[英]C++ read from a csv file and then assign the data to class member
我是C ++初學者。 我下面顯示的基本代碼能夠讀取csv文件並逐行打印出數據。 但是,我無法弄清楚如何將所有這些數據分配給定義的通勤類變量。 我已經嘗試了很多在線教程,但它總是會顯示我不確定如何調試的錯誤。有人可以幫我一些忙嗎? 謝謝。
樣本數據:
commuter1;A;7;20 commuter2;B;8;30 commuter3;F;10;10 .....
#include<iostream>
#include<string>
#include<vector>
#include<fstream>//strtok
using namespace std;
class Commuter {
private:
string name;
char point;
int hour;
int minute;
public:
Commuter(string name, char point, int hour, int min) {
this->name = name;
this->point = point;
this->hour = hour;
this->minute = min;
}
void setname(string name);
void setpoint(char point);
void sethour(int hour);
void setmin(int min);
vector<Commuter> commuter;
};
void Commuter::setname(string name) {
this->name = name;
}
void Commuter::setpoint(char point) {
this->point = point;
}
void Commuter::sethour(int hour) {
this->hour = hour;
}
void Commuter::setmin(int min) {
this->minute = min;
}
int main() {
ifstream commuterfile;
string filename;
string str;
cout << "Enter the file path: " << endl;
cin >> filename;
commuterfile.open(filename.c_str());
if (!commuterfile) {
cerr << "ERROR" << endl;
exit(1);
}
while (getline(commuterfile, str, ';')) {
cout << str << endl;
}
commuterfile.close();
return 0;
}
您的str
變量中有一行數據,因此您應該能夠再執行幾步並將其添加到類中。
首先,您應該弄清楚如何將字符串拆分為components 。
下一步是將每個組件從字符串轉換為所需的數據類型。 atoi
將是將字符串轉換為int的好函數。
您還需要一個類的實例。 例如Commuter commuter;
然后,您可以在實例上調用commuter.setXXX(variable);
等函數commuter.setXXX(variable);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.