int DataSource::insertData(char* fileName){
double vel, tireAngle, timeStamp;
string inputLine;
int i=0;
ifstream inFile;
inFile.open(fileName);
if (!inFile.good())
{
cout << "Could not open file " << fileName << endl;
return 0;
}
while(inFile.good())
{
getline(inFile, inputLine);
if(inFile.fail())
{
break;
}
istringstream lineStream(inputLine);
lineStream >> timeStamp >> vel >> tireAngle;
source.push_back(Input(vel, tireAngle, timeStamp));
++i;
}
inFile.close();
return i;
};
Ich versuche, den Dateinamen zu übergeben, öffnen Sie die Datei und analysieren Sie durch jede Zeile. Die Input-Klasse enthält die drei doppelten Werte und die Quelle ist ein Vektor vom Typ Input. Ich habe Vektor, iostream, fstream, string, sstream, climits # enthalten, zusammen mit Std-Namespace.Datei in C++ mit Member-Funktionen lesen
Also meine erste Ausgabe wird die Datei nicht öffnen, ich weiß, dass der richtige Dateinamen in geben wird der Fehler Ich erhalte ist:.
„Datei kann nicht geöffnet input1.txt libC++ abi .dylib: Endung mit nicht abgefangener Ausnahme vom Typ std :: out_of_range: vector "
Für den Vektor habe ich den Fehler gegoogelt und ich denke ich greife auf einen schlechten Vektor zu, der entweder weil ich vielleicht nicht richtig initialisiert wurde Die Vektor-Eingabe-Quelle (Formatierung lässt mich nicht "größer als, kleiner als" setzen) oder ich benutze die falsche Syntax.
Dies ist mein erster Beitrag, also tut mir leid, wenn dies eine schlechte Frage/Formatierung ist, aber jede Hilfe wäre willkommen.