fstream: Datei kann nicht geöffnet werden
-
Th69 schrieb:
Deine Parameter bei open sind falsch.
Du mußt die einzelnen Flags "verodern":ios::out | ios::trunc(eigentlich müsste bei dir aber ein Compilerfehler kommen, denn 'open' hat eigentlich nur zwei Parameter
)Oh man, ich frage mich auch gerade warum das VS nicht als Fehler erkannt hat.
Jetzt funktionierts.
Aber das zweite Problem konnt ich noch nicht lösen...
-
Einen direkten Fehler in deinem Code sehe ich auf Anhieb nicht (man könnte einiges jedoch schöner machen -), daher folgende Vermutung:
Hast du die Datei "test2.txt" mit einem externem Editor erstellt? Wenn ja, evtl. eine falsche Codierung angegeben bzw. steht am Anfang ein Byte Order Mark (BOM)?
Lies einfach programmtechnisch mal ein paar Zeilen weiter und lass dir die Zeilen ausgeben bzw. teste mal nach jeder Zeile, ob der Stream in einen Fehlermodus gekommen ist (mittels "if (!testfileread)" ...
-
Th69 schrieb:
(eigentlich müsste bei dir aber ein Compilerfehler kommen, denn 'open' hat eigentlich nur zwei Parameter
)Niemand weiß, welche krummen zusätzlichen Parameter Microsoft da eingebaut hat, z.B. bools oder was in der Art, wo das Flag stillschweigend konvertiert wird. Einem VS6 traue ich da einiges zu

-
Ich mache so eine Testdatei zuverlässig so:
#include <iostream.h> // erforderliche Headers bereitstellen #include <fstream.h> #include <iomanip.h> ofstream test; // Ausgabestream bennennen ... test.open("test.txt"); // Testdatei öffnen test.open(ios::fixed): // Parameter der Testdatei setzen test.open(ios::floatfield); test.open(ios::showpoint); ... test << "Hallo, hier bin ich!" << endl; // irgendwas reinschreiben test.close(); // Testdatei schliessen
-
berniebutt schrieb:
Ich mache so eine Testdatei zuverlässig so:
#include <iostream.h> // erforderliche Headers bereitstellen #include <fstream.h> #include <iomanip.h> ofstream test; // Ausgabestream bennennen ... test.open("test.txt"); // Testdatei öffnen test.open(ios::fixed): // Parameter der Testdatei setzen test.open(ios::floatfield); test.open(ios::showpoint); ... test << "Hallo, hier bin ich!" << endl; // irgendwas reinschreiben test.close(); // Testdatei schliessen

-
Hallo berniebutt,
du meinst wohl eher
test.setf(ios::fixed): // ...?!?
Edit:
Und statt open am besten gleich im Konstruktor die Datei öffnen:ifstream test("test.txt"); if(!test) // fail
-
Th69 schrieb:
du meinst wohl eher
test.setf(ios::fixed): // ...Klar, muss test.setf(....) heissen! Manchmal ist man beim Schreiben eines Beitrages etwas schlampig. Danke für die Korrektur. Der Fragesteller sollte das jetzt selbst hinbekommen!
-
Danke für euere Hilfe, aber leider bekomm ich das Programm trotzdem nicht zum laufen. Was macht x.setf? Ich kenne .setf (noch) nicht...
-
Mit "setf" (SET FLAG) kannst du Flags setzen/ändern. Seihe MSDN für mehr Infos.

-
HighLigerBiMBam schrieb:
Mit "setf" (SET FLAG) kannst du Flags setzen/ändern. Seihe MSDN für mehr Infos.

Alles klar, verstanden.

-
Trollst du ??? http://lmgtfy.com/?q=c%2B%2B+setf