Vektor in Datei schreiben

Lyro

Grünschnabel
Hi Leute,

ich habe einen einfachen vektor<char*> und möchte diesen in eine Datei schreiben.
Ich weiß aber ehrlich gesagt nicht, was ich hier falsch mache. Ich bekomme keine Fehlermeldung, aber es wird keine Datei erstellt o.Ä.


Beispielcode:
Code:
FILE *test_file;

.
.
.

vector<char*> all_chars;
all_chars.push_back( "toller" );
all_chars.push_back( "Test" );

char* test_filename = "toller_Name.txt"
test_file = fopen(test_filename, "w");

for ( i=0; i<=all_chars.size(); i++ )
     fprintf(test_file, all_chars[i]);

fclose(test_file);

Eigentlich sollte nun in der Datei "tollerTest" stehen oder nicht?
 
Zuletzt bearbeitet:
Hi.

Ja, sollte so drin stehen.

Evtl. schaust du dir die falsche Datei an. Prüfe mal das Änderungsdatum.

In C++ sind die Streams meist einfach zu verwenden:
C++:
std::ofstream outstream(filename);

std::copy(all_chars.begin(), all_chars.end(),
  std::ostream_iterator<const char*>(outstream));

PS: du hast einen off-by-one Fehler drin und greifst über die Grenzen des Vektors auf ein nicht-existierendes Element zu. Evtl. stürzt dein Programm auch einfach nur ab? => Es muss i < size heißen - noch ein Grund lieber Iteratoren zu verwenden...
 
Zuletzt bearbeitet:
Evtl. schaust du dir die falsche Datei an. Prüfe mal das Änderungsdatum.

Die Datei ist korrekt... :-/


PS: du hast einen off-by-one Fehler drin und greifst über die Grenzen des Vektors auf ein nicht-existierendes Element zu. Evtl. stürzt dein Programm auch einfach nur ab? => Es muss i < size heißen - noch ein Grund lieber Iteratoren zu verwenden...

Habs aus Versehen falsch abgeschrieben.:-(


Ich versuche mal deinen Beispielcode aus und melde mich dann wieder.


EDIT: Der Timestamp der Datei ändert sich nicht. Sollte das nicht bereits beim fopen passieren?

EDIT2: Fehler gefunden. Es lag an einem Fehler vor meinem Beispielcode. Sorry, dass ich deine Zeit verschwendet habe...^^
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück