Datei-Inhalt löschen
-
gibt es eine Funktion/Routine, einen Dateiinhalt zu löschen, bevor hineingeschrieben wird ??
-
ofstream out("datei.txt");//statt ("datei.txt",ios::app)
-
Nee klappt nicht,
der fügt dann immer ein undefiniertes Zeichen vor der Zahl hinzu....
der müsste einmal alles löschen,was in der datei steht....
-
hier sowas z.B. schreibt er dann darein
vorher stand nur die 0 in der Datei
und hinterher das
1
-
Auf einer Seite über C-Dateizugriffsbefehlen fand ich folgendes
FILE *f; f = fopen("test.dat", "rwb"); wobei Der erste Parameter von fopen() ist der Dateiname. Der zweite Parameter ist der Öffnungsmodus, der als Zeichenkette eines oder mehrerer Buchstaben übergeben wird. Tabelle (tabfilemodus) zeigt eine Übersicht. [Öffnungsmodi bei fopen()] Zeichen Bedeutung r Zum Lesen öffnen w Datei leeren und zum Schreiben öffnen a Daten werden angehängt r+ Neben dem Lesen auch das Schreiben zulassen w+ Datei leeren und zum Schreiben und Lesen öffnen b Binärdatei (keine Konvertierung der Zeilenendezeichen)
bekomme das aber nicht gescheit eingebaut...
habe es so implementiert
streampos ausgabepos1,anfangpos,endepos; ifstream eingabe2(numm.c_str(),ios_base::in); // Datei in die geschrieben wird if (eingabe2.good()) { ofstream ausgabe(numm.c_str(), ios_base::out | ios_base::in | ios_base::ate); if (ausgabe.good()) { //fstream f(numm.c_str(), ios::in); //f.clear(); FILE *f; f = fopen(numm.c_str(), "w"); eingabe2.seekg(0L,ios::beg); ofstream out(numm.c_str()); //statt (numm.c_str(), ios::app) //ofstream out(numm.c_str(), ios::app); ausgabe << zahl_var; cout << "\n\nSchreiben in Datei erfolgreich!\n\n"; } else cout << "Ausgabedateifehler!" << endl; } else cout << "Eingabedateifehler oder Datei nicht gefunden!" << endl;
macht er aber trotzdem noch so falsch
-
Jetzt hab ich es
Hab's alleine rausgefunden *STOLZ*so hab ich es gemacht :
FILE *ads; ads = fopen(numm.c_str(), "w"); fclose(ads); ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// streampos ausgabepos1,anfangpos,endepos; ifstream eingabe2(numm.c_str(),ios_base::in); // Datei in die geschrieben wird if (eingabe2.good()) { ofstream ausgabe(numm.c_str(), ios_base::out | ios_base::in | ios_base::ate); if (ausgabe.good()) { fstream f(numm.c_str(), ios::in); f.clear(); eingabe2.seekg(0L,ios::beg); //ofstream out(numm.c_str()); //statt (numm.c_str(), ios::app) ausgabe << zahl_var; cout << "\n\nSchreiben in Datei erfolgreich!\n\n"; } else cout << "Ausgabedateifehler!" << endl; } else cout << "Eingabedateifehler oder Datei nicht gefunden!" << endl;
Das ist natürlich nur ein kleiner Auszug aus dem ganzen code....
-
Wieso erstellst du zu deiner Frage noch einen extra-Thread obwohl du sie bereits gestellt hast?
Siehe auch: http://www.c-plusplus.net/forum/viewtopic-var-t-is-107878-and-sid-is-4f0ab2e99917b149e0e89016ab0e425f.html
Desweiteren würde ich nicht unbedingt C und C++ mischen. In deinem Crosspost habe ist eine C++-Anregung
Caipi