myfile.eof()
-
SERVUS.
ich habe versucht, diese info in meinen code einzubauen. leider gabs folgende fehlermeldung:
error C2079: 'stream' verwendet undefiniertes class 'basic_ofstream<char,struct std::char_traits<char> >'
error C2078: Zu viele Initialisierungenwas soll das nun bedeuten?
TSCHAU
STICK.
-
Hi!
An welcher stelle im Code bringt der Compiler das? Hast du <fstream> includiert?
grüße
-
hallo.
- die fehlermeldung kommt genau an der stelle, an der ich deine empfohlene zeile angebracht habe.
- <fstream> habe ich eingebunden, denn damit habe ich schon immer meine dateiarbeit erledigt. nun will ich halt einfach eine zuvor geschrieben datei öffnen und was dazufügen. das habe ich vorher nie gemacht.grüsse,
STICK.
-
Hi,
David_pb schrieb:
std::ofstream stream( "dateiname", std::ios_base::out | std::ios_base::app ); stream.close();das müsste eigentlich funktionieren. Kannst du mal deinen Quellcode zeigen?
-
SERVUS.
das ist gar nicht so einfach, da das programm recht gross ist. ich versuche mal den teil herauszuschneiden, der von bedeutung ist.
#include "conio.h" #include <Windows.h> #include <math.h> #include <string> #include <sstream> #include <EasyBMP.h> #include <fstream.h> ofstream myfile; void SAVE_Qn (int Punkt_Zahl, double **MatQn) { int i; std::fstream file ( "dateiname.txt", std::ios_base::out | std::ios_base::app ); for (i=0;i<Punkt_Zahl;i++) file << MatQn[i][i] << ","; file.close(); }die globale variable myfile macht sicher kein problem?
ich hatte auch mal das problem, dass EasyBMP.h nicht in der richtigen reihenfolge eingeordnet war und dadurch probleme gemacht hat. ich weis nicht, ob dies jetzt wieder der fall sein könnte.DANKE.
STICK.
-
Hi!
Entferne doch bitte das .h nach #include <fstream>. Ansonsten ist eigentlich alles richtig.
grüße
-
habe es jetzt so, das scheint auch zu funktionieren.
#include <fstream.h> #include <fstream>damit kann ich sowohl
ofstream myfile;als auch
std::fstream myfile ( "dateiname.txt", std::ios_base::out | std::ios_base::app );nutzen.
werde den code sicher so umgestalten, dass ich am ende nur noch zweitere version habe. danke.
-
Hi!
NEIN, #include <fstream.h> fliegt ganz raus. Die standard Header haben keine .h Endung, das ist veraltet und nicht im Standard festgelegt!
Dafür änderst du:
ofstream myfile;in
std::ofstream myfile;Oder, wenn die das std:: zu viel ist (welch Faulheit ;)), schreibst du unter die Headerincudierung:
using namespace std;Aber nur kein .h an die Standardheader, wie oft denn noch?
grüße
-
hmmm. das ist mir neu, dass die .h endung veraltet ist. danke für den hinweis!
dann müsste ich ja auch bei allen anderen headerfiles die endung entfernen?
-
Hi!
Nein, das gilt für sämmtliche Standard C++ Headerfiles. Wie:
iostream fstream cstring cmath vector ...Früher, vor langer Zeit, gab es die ganzen Header noch mit .h hintendrann. Das ist jetzt nichtmehr der Fall und soll auch nichtmehr gemacht werden.
Andere Header, von API's etc... können aber immer noch eine .h Endung haben. Das kommt auf die Leute an die diese Bibliotheken schreiben.
windows.h conio.h ...grüße
-
Bei dir sollte noch math.h durch cmath ersetzt werden.
-
Nein nur bei den Standard-Headern, aber das wirst Du merken wenn du conio.h oder windows.h die Endung klaust
...BTW:
math.h -> cmath