Ich versuche, Daten aus einer .tsv-Datei in einen Vektor zu lesen. Die Datei ist so etwas wie folgt strukturiert:Lesen einer bestimmten Spalte in einer .tsv-Datei
A B
1 2
2 4
6 8
Ich möchte fragen, welche Spalte sollte das Programm lesen, und drücken Sie dann die Werte aus der Spalte in einen Vektor. Mein Code so weit ist dies:
int main() {
string filename, column, headerLine;
vector<double> data, tempData;
int numColumn;
ifstream dataFile;
cout << "enter a filename" << endl;
cin >> filename;
dataFile.open(filename);
cout << "enter a column name" << endl;
cin >> column;
cout << "reading column " << column << " from " << filename;
getline(dataFile, headers);
//here's where I feel stuck
}
Wenn ich die Header in einen Vektor namens headersList bekommen und dann tun etwas ähnliches für die Datenzeilen, würde ich in der Lage sein, dies zu tun:
for(int i = 0; i < headersList.size(); i++) {
if(headersList[i] == column) {
numColumn = i;
}
}
while(!dataFile.eof()) {
//some way of getting the data points into a vector called tempData
data.push_back(tempData[numColumn]);
tempData.clear();
}
ich würde wirklich etwas Hilfe schätzen
haben Sie nur zwei Spalten haben? Ist der Name jedes Headers eindeutig? –
Ich habe mehr als zwei Spalten, und ja, jeder Name der Kopfzeile ist einzigartig. Die Namen der Spalten können auch mehr als 1 Zeichen lang sein, aber kein Leerzeichen enthalten. – Evan
Der Datentyp für den Header scheint kein Problem zu sein, da Sie Strings vergleichen. Ich beantworte Ihre Frage jetzt. –