Problem Datei mit fstream zu öffnen

Diskutiere Problem Datei mit fstream zu öffnen im Developer Network Forum im Bereich Hardware & Software Forum; Hi, Ich habe bei c++ das Problem, dass ich mit fstream keine Dateien mehr öffnen kann gekürzter Codeausschnitt: #include<fstream> ... fstream...
  • Problem Datei mit fstream zu öffnen Beitrag #1
B

Bagman

Bekanntes Mitglied
Dabei seit
13.12.2006
Beiträge
56
Reaktionspunkte
0
Hi,
Ich habe bei c++ das Problem, dass ich mit fstream keine Dateien mehr öffnen kann
gekürzter Codeausschnitt:

#include<fstream>
...
fstream file;
file.open("test.txt",ios::in);
if(!file)
cout << "openerr";
...

er gibt natürlich openerr aus. Die Datei liegt im gleichen Verzeichnis wie das Programm. Es hat auch vor einer Weile (ca. halbes Jahr) noch funktioniert. Wäre dankbar für Ratschläge.

Und als compiler habe ich dev-cpp benutzt

mfg
Bagman
 
Zuletzt bearbeitet:
  • Problem Datei mit fstream zu öffnen Beitrag #2
Max11.111

Max11.111

Bekanntes Mitglied
Dabei seit
12.06.2008
Beiträge
2.416
Reaktionspunkte
0
Mach mal
Code:
#include <fstream.h>
Was soll den das Programm eigentlich so alles machen?
Was sagt dir der Debugger?

Also ich nehme ifstream (lesen) und ofstream (schreiben) her. Hat bisher immer noch funktioniert!
 
  • Problem Datei mit fstream zu öffnen Beitrag #3
B

Bagman

Bekanntes Mitglied
Dabei seit
13.12.2006
Beiträge
56
Reaktionspunkte
0
Beim Kompilieren kommt keine Fehlermeldung (wenn du das meinst mit was sagt der debugger)
das Programm soll zu einem bestehenden Wörterbuch ein weiteres erstellen, dass Permutationen (durch hinzufügen von Zahlen) der originalwörter enthält. Sieht man natürlich nicht am Ausschnitt, da ist nur der für den Fehler relevante Teil angegeben.
Mit ifstream hab ichs auch schon probiert, es hat ja auch schon mal funktioniert. Kann es sein, dass das am compiler liegt?
Oder hat das Programm evtl. nicht die Rechte auf die Datei zuzugreifen?

zum Header:
macht es einen Unterschied ob man *.h angibt oder nicht?
das sind doch in der Regel nur die alten, bei denen man das machen muss
 
  • Problem Datei mit fstream zu öffnen Beitrag #4
Max11.111

Max11.111

Bekanntes Mitglied
Dabei seit
12.06.2008
Beiträge
2.416
Reaktionspunkte
0
Nein, der Debugger ist wieder etwas anderes.
Ich probiers mal mit Dev-C++.

zum Header:
macht es einen Unterschied ob man *.h angibt oder nicht?
das sind doch in der Regel nur die alten, bei denen man das machen muss

Du kannst auch
Code:
using namespace std;
eingeben!;)
Aber irgendwas muss hin. Sonnst kannst du nicht drauf zugreifen!

siehe: http://tutorial.schornboeck.net/namespace.htm
 
Zuletzt bearbeitet:
  • Problem Datei mit fstream zu öffnen Beitrag #5
Max11.111

Max11.111

Bekanntes Mitglied
Dabei seit
12.06.2008
Beiträge
2.416
Reaktionspunkte
0
Okay, irgendwie habe ich Dev-C++ scheinbar aus Wut gelöscht. Leg dir bitte auch (zu Gunsten deiner Nerven) einen guten Compiler zu!:D

Hier eine Windows-Programm-Version.
Code:
#include <fstream>
#include <windows.h> 
using namespace std;

int WINAPI WinMain(      
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
{
	fstream file;
	file.open("test.txt", ios::in);
	if(!file.good())
		MessageBox(NULL, "", "error",  NULL); 
	else
		MessageBox(NULL, "", "good",  NULL); 
	return 0;
}
Ich bekomme immer "good"!
Wahrscheinlich existiert deine "test.txt" nicht!;)
 
  • Problem Datei mit fstream zu öffnen Beitrag #6
B

Bagman

Bekanntes Mitglied
Dabei seit
13.12.2006
Beiträge
56
Reaktionspunkte
0
naja also test.txt liegt in dem ordner wie das dev-cpp Projekt, also ist schon existent.
Meinst du also das kann am compiler liegen, oder eher ein Programmierfehler?
Und wenn du grad dabei bist, erklärst du mir den Unterschied zwischen
if(!file)
und
if(!file.good())

danke
Bagman
 
  • Problem Datei mit fstream zu öffnen Beitrag #7
B

Bagman

Bekanntes Mitglied
Dabei seit
13.12.2006
Beiträge
56
Reaktionspunkte
0
ok, sorry hab den Fehler grad gefunden. Windows versteckt die Dateiendungen, das heißt was ich als test.txt gesehen hab hieß in wirklichkeit test.txt.txt
arrrg
aber der Unterschied
!file
!file.good()
würde mich noch interessieren
 
  • Problem Datei mit fstream zu öffnen Beitrag #8
Max11.111

Max11.111

Bekanntes Mitglied
Dabei seit
12.06.2008
Beiträge
2.416
Reaktionspunkte
0
Die Dateiendungen kannst du dir einblenden lassen!

Du kannst nehmen was du willst. Beides funktionier. Ich bevorzuge iso::good(), weil:
The function returns true if none of the stream's error flags (eofbit, failbit and badbit) are set.
Sprich: Sie sagt dir, ob die Datei geöffnet wurde, oder nicht.:D

Hier findest du mehr zu ifstream: http://www.cplusplus.com/reference/iostream/ifstream/
 
Thema:

Problem Datei mit fstream zu öffnen

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.172
Mitglieder
55.878
Neuestes Mitglied
Satan666
Oben