[c++] wenn Datei vorhanden -> laden

Anfänger92

Erfahrenes Mitglied
Hallo.

Ich habe ein Programm das eine vorher festgelegte Datei laden soll,
wenn diese vorhanden ist.

Aber wie lasse ich das Programm testen ob die Datei schon da ist ?

Danke schonmal
 
Du gibst erst die normale Anweisung zum Öffnen der Datei und hängst dann an:

Code:
if(!mystream) {  //ersetze mystream durch den stream namen
cout<<"Fehler beim öffnen der Datei!"<<endl;
//hier kannst du den Fehler gegebenenfalls bearbeiten (neue Datei anlegen etc.)
}

Ist nicht getestet, sollte aber funktionieren.
Gruß
bastionmancher
 
Geht nicht : Fehler:

error C2143: syntax error : missing ';' before 'if'

Hab ich das so richtig gemacht ?

Code:
Form1::richTextBox1->LoadFile(Form1::saveFileDialog1->FileName)if(!Form1::saveFileDialog1->FileName) {  //ersetze mystream durch den stream namen
Form1::error_laden->Text="Fehler";
}
 
Zuletzt bearbeitet:
Hier mal ein komplettes Programm, das die ersten zehn Zeilen einer (wenn vorhandene) Datei einliest und den Text ausgibt:

Code:
#include<iostream>
#include<fstream>

using namespace std;

int main()
{
	string zeilen[10];
	fstream datei;
	datei.open("test.txt", ios::in);
        if(!datei)            //Hier wird dann überprüft, ob die Datei existiert.
        {
                cout<<"Fehler beim Öffnen der Datei"<<endl;
        }
	for(i=0; i<10; i++)
	{
		getline(datei, zeilen[i]);
		cout<<zeilen[i];
	}
	datei.close();
}

Ist wie immer ohne Gewähr und ungetestet.
Gruß
bastionmancher

EDIT: Hab ich total vergessen mit dem überprüfen! sry
 
Zuletzt bearbeitet:
Ok. So klappt das nicht wie ich mir das vorstell, warum auch immer.
Versuchen wir das mal anders.
Gibt es eine Funktion die den Computer den Fehler ignorieren lässt wenn er auftritt?
 
Zuletzt bearbeitet:
Habs geschafft.;-)

Wusste nich das man Bei einer 'try-catch' Anweisung '...' einsetzen kann:rolleyes: .

Naja danke für die Hilfe.
Hier nochmal der Code den ich benutzt habe:

Code:
void lese_datei(void) {   //Funktion die Datei läd wenn vorhanden
     Form1::error_laden->Text="Eintrag geladen"; 
     try{   //Versuch datei zu laden
          Form1::richTextBox1->LoadFile(Form1::saveFileDialog1->FileName);
     }
     catch(...){   //bei Fehler...
           Form1::error_laden->Text="Kein Eintrag vorhanden";
     }
}
 
Zurück