Daten bis zum Fileende löschen

Veltar

Grünschnabel
Also ich hab schon gesucht (google und auch hier) aber leider noch keine brauchbare Lösung gefunden.

Also ich habe eine Datei und einen Pointer, welcher auf eine Stelle in der Datei verweist, nun will ich alles in der Datei löschen, von diesem Pointer ab bis zum EOF.

Wie gesagt eine elegante Lösung hab ich noch nicht gefunden. Vorschläge?
 
Hi, wie wäre es damit?:

Code:
      1 #include <fstream>
      2 #include <string>
      3 #include <iostream>
      4 
      5 using namespace std;
      6 
      7 int main(void){
      8 
      9         int pos = 0;
     10         ifstream in;
     11         ofstream out;
     12         string filename = "";
     13         char *content = NULL;
     14 
     15         cout << "Insert file name: " ;
     16         cin >> filename;
     17 
     18         in.open(filename.c_str());
     19   
     21         cout << "Insert position: ";
     22         cin >> pos;
     23         content = new char[pos + 1]; 
     24         in.read(content, pos);
     25         in.close();
     26         out.open(filename.c_str(), ios::trunc); //delete the whole content from file
     27         out << content;
     28         out.close(); 
     29         delete content;
     30         return 0;
     31 }
 
Zuletzt bearbeitet:
Ja das währs wenn das File nicht so gross ist, aber es ist vollkommen unrentabel das gesammte file einzulesen (vor allem wenn es sich um mehrere MB handelt) und dann am schluss ein bis zwei Zeilen zu löschen. das problem dabei ist dass es einfach zu lange dauert und ich die Laufzeit leider nicht habe.

Hab aber eine andere Lösung gefunden:

truncate(filename.c_str(), pointer);

Simple und elegant ^^
 
Zurück