fopen in c++

july

Erfahrenes Mitglied
Hallo zusammen,

ich benutze fopen in meinem c++-Programm. Muss man in C++ da was extra beachten? Weil ich jedes Mal einen Null-Filepointer zurückbekomme, egal was für Mode ich als Parameter bei der Methode fopen() setze. Hier ist ein Code-Beispiel:
C++:
FILE* file;
string filename = "";
filename += zentralenID;
filename += "/";
filename += "aktuelle_id.txt";
file = fopen(filename.c_str(), "w");
//file = fopen("aktuelle_id.txt","w+");
if( file != NULL) 
{
	actualID++;
	fprintf(file, "%d", actualID);
	fclose(file);
}
else
{
printf("ID_Generator::generateNewID():Beim Schreiben der Nachrichtenid in die Datei ist ein Fehler aufgetreten.\n");
}


Ich muss dazu sagen dass die Datei noch nicht existiert und muss angelegt werden.
Habt ihr ein Idee wie man das Problem lösen kann?

Grüße July
 
Zuletzt bearbeitet von einem Moderator:
Hi

"w" als Modus überschreibt ggf. eine vorhandene Datei,
legt aber auch automatscih eine neue an, falls es noch keine gibt.
Das dürfte also nicht das Problem sein.

Was fopen allerdings nicht anlegen kann sind Verzeichnisse
(und Unter(Unter-...)Verzeichnisse, in denen die Datei drin sein soll)
Gibt es den ein Verzeichnis, das so heißt wie der Wert von zentralenID?

Und welches Betriebssystem verwendest du übrigens? Für Windows ist / falsch.

Gruß

PS: Was ist jetzt eigentlich mit deiner RAM/Stack-Sache?
 
Zuletzt bearbeitet:
c++ und fopen macht man eigentlich nicht, da fopen ANSI C ist.
Ich möchte hier nicht sagen, dass das falsch ist, aber eleganter würde ich das mit streams machen oder?
In Ausnahmefällen kann man dann auf C funktionen zurückgreifen.

Das soll wie gesagt kein "gemecker" sein, sondern lediglich ein Hinweis
 
Zurück