ifstream
-
Ich speichere mir Namen von Dateien mit der Funktion "push_back"
und möchte diese mit einer Schleife auslesen und öffnen.
Bin Anfänger,könnt ihr mir helfen.vector<string> ffiles;
vector<string>::iterator iter = ffiles.begin();
vector<string>::iterator iter_end = ffiles.end();//Speichere Namen von Dateien
for(i=0; i< 5;i++)
{
ffiles.push_back(szFileName);
usw...
}
//Auslesen und Öffnen//
while(iter !=iter_end)
{
//Offnen geht so nicht//
std::ifstream ifs (*iter);
usw....}
-
wie man Dateien öffnet und einliest steht in der FAQ,
Fehlermeldung wäre nett,
aber auf jeden Fall setzt du den Iterator obwohl noch gar nix im Vector drin steht, du darfst den auf begin() erst setzen wenn schon was drin is, und den auf end() bei jedem push_back neu setzen(bzw. eben nach der Schleife in der der Vector befüllt wird)
theduke
-
Danke für deine Antwort.Die FAQ habe ich gelesen.
Das Problem ist aus einem Vector auslesen,und im ifstream einsetzen.
Fehlermeldung:
Konvertierung des Parameters 1 von 'std::vector<_Ty,_Ax>::iterator' in 'const char *' nicht möglich
-
iter->c_str()
-
Ein anderer fehler ist dass du dir die iteratoren holst bevor du etwas in den vector eingefügt hast.
BTW: Bei vektoren brauchst du keine iteratoren.for (int idx=0; idx <ffiles.size(); idx++ ){ std::ifstream ifs ( ffiles[idx].c_str() ); // usw.... }Kurt
-
@FireFlow Danke,Compiler läuft jetzt durch.
@ZuK Das währe meine nächste Frage gewesen.
iter zeigt ins Nichts.
Wenn ich die iteratoren nach dem Füllen des Vectors benutze,
kann ich sie dann verwenden ?
-
ja
-
Doofie schrieb:
Wenn ich die iteratoren nach dem Füllen des Vectors benutze,
kann ich sie dann verwenden ?Diese Frage musst du anders stellen: "Wenn ich die Iteratoren nach dem Füllen mit begin() und end() *initialisiere* kann ich dannn korrekt durch den vector iterieren? (natürlich nur, wenn ich nach dem initialisieren kein neues Element mehr hinzu "pushe".
Btw. Wie Zuk schon sagte: Bei std::vector brauchst du keine iteratoren. Normale Zählvariablen reichen vollkommen. (Siehe Zuks post).
/edit: Irgendwann erwischt es jeden...
Caipi
-
@Caipi Die ganzen Bücher die ich habe sind voll von diesen iteratoren, in Verbindung mit Vectoren.
Danke an alle,Programm läuft jetzt wie es soll.