Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Daten an Datei anhängen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
01.03.2005, 22:43 Uhr
~LHS
Gast


--------------------------------------------------------------------------------
hallo
Ich möchte den Inhalt meines vectors in einer csv_Datei speichern . Dann beim 2. 3. 4... Starten des Programms , soll den neuen Inhalt angehängt werden(nun csv_Datei ist bereits im Prog_Verzeichnis durch den 1. Start vorhanden). also das Speichern vom vector_inhalt funktioniert aber das Anhängen funzt nicht! Stattdessen wird den alten Inhalt immer überschrieben !??

C++:
Int  speichern ()
{
fstream datei("ausgabe.csv", std::ios::out);   //"ausgabe.csv" als Ausgabedatei
    if(!datei)
   {
        // OK! datei existiert nicht
           copy(vector.begin(),vector.end(),ostream_iterator<int>(datei,",\r"));
        //return 20;
   }
   else
               {
                //datei existiert bereit
         fstream datei("ausgabe.csv",ios::app);    
         copy(vector.begin(),vector.end(),ostream_iterator<int>(datei,",\r"));
    }

    datei.close();  // Datei schliessen  
return 0;
}



was habe ich falsch geschrieben?
Hat jemand eine Idee? Danke vielmals!


Bearbeitung von typecast:

cpp-Tags korrigiert


Dieser Post wurde am 01.03.2005 um 23:55 Uhr von typecast editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.03.2005, 23:58 Uhr
typecast
aka loddab
(Operator)


Wenn du die Datei oeffnest, dann zeigt der Filepointer auf den Anfang der Datei. Um an die Datei etwas anzuhaengen musst du an das Ende der Datei gehen.

Das kannst du schon beim oeffnen der Datei machen:


C++:
fstream datei("ausgabe.csv", std::ios::out | std::ios::app);   //"ausgabe.csv" als Ausgabedatei


--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)

Dieser Post wurde am 02.03.2005 um 00:02 Uhr von typecast editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.03.2005, 00:21 Uhr
~LHS
Gast


Vielen Dank typecast
das hat wunderbar geklappt.
wie kann ich jetzt den Filepointer an Dateiende+1 zeigen lassen.also das Anhängen von Daten soll nicht direkt an dem Dateiende sondern um eine Zeile weiter bzw.(hier csv um eine Zelle weiter), damit ich dazwischen unterscheiden kann.

Danke nochmals
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.03.2005, 00:32 Uhr
typecast
aka loddab
(Operator)


Dateiende + 1 ist nicht moeglich, da du dann ja ausserhalb der Datei bist.

In diesem Fall solltest du vor dem eigentlichen Schreibprozess ein newline in die Datei schreiben:


C++:
datei << std::endl;


--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.03.2005, 00:56 Uhr
~LHS
Gast


vielen dank typecast

alles klappt wunderbar.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: