[C/C++] fstream

Hallo!

Ich wollte mit einem fstream mal von einer datei lesen und dann in die nächste zeile was schreiben aber das funktioniert nicht so ganz.
das ganze sieht ungefähr so aus:

Code:
fstream db;
db.open(argv[i + 1], ios_base::in | ios_base::out);
char cdb[255];
db.getline(cdb, sizeof(cdb));
db.write("\n==> ", sizeof("\n==> "));
db.close();

das wäre so der grobe ablauf von dem programm. Allerdings schreibt es nicht in die datei und ich weiss nicht warum. Hilfe! :(

Wodran liegt das und was kann ich gegen tun?

Danke

Nimda05
 
Moins, mach das ganze mal so:

Code:
#include<fstream>
#include<string>

int main(int argc, char* argv[])
{
    std:: fstream db;
    std::string s;
    db.open(argv[1], std::ios::out | std::ios::in);
    db << "\n==>";
    db.flush();
    std::getline(db, s); 
    db.close();
   return 0;
}
Dadurch das du std::string nutzt sparst du dir die Speicherverwaltung. Und indem du db.flush() aufrufst schreibst du das was aktuell im Buffer steht in die Datei. Ansonsten sollte der Rest selbsterklärend sein wenn nicht hier nachgucken bzw bei Google da gibts genug Beispiele:

http://cppreference.com/
 
Hallo!

Sagt mal habt ihr net mal ein beispiel programm was aus einer text.txt:

blaaaaaaaaaaaaaaaaaaaa
bluuuuuuuuuuuuuuuuuuuuub


folgendes macht:

blaaaaaaaaaaaaaaaaaaaa

==> gaga

bluuuuuuuuuuuuuuuuuuuuub

Bei mir wird blub immer überschrieben Oo

Danke

Nimda05
 
Original von Nimda05
Hallo!

Sagt mal habt ihr net mal ein beispiel programm was aus einer text.txt:

blaaaaaaaaaaaaaaaaaaaa
bluuuuuuuuuuuuuuuuuuuuub


folgendes macht:

blaaaaaaaaaaaaaaaaaaaa

==> gaga

bluuuuuuuuuuuuuuuuuuuuub

Bei mir wird blub immer überschrieben Oo

Danke

Nimda05


Geile Beispiele^^

Meinst du so?

Code:
#include <fstream>
using namespace std;

int main () {

  char* cLine = "blaaaaaaaaaaaaaaaaaaaa";
  char* cNewLine = "\n==> gaga";
  char* cOldLine = "\nbluuuuuuuuuuuuuuuuuuuuub";


  ofstream outfile;
  outfile.open ("test.txt", ios_base::in | ios_base::ate);

  outfile.seekp(strlen(cLine));
  outfile.write(cNewLine, strlen(cNewLine));
  outfile.write(cOldLine, strlen(cOldLine));
  outfile.close();

}
 
Zurück
Oben