Dateien auslesen. WIE?

N

nulac

Hi there!

Ich bin neu hier, also entschuldigt bitte meine Unwissenheit und andere Mängel. Ich habe ja ansich einen HTL-Abschluss und sollte es daher eh können, doch am 12. Jänner 2006 wurde ich von einem Auto niedergefahren und abei habe ich alles, was mit C++ zu tun hat, vergessen. Nun hab ich mir ein Heft für Anfänger gekauft und hab trotzdem Probleme.

Also um es kurz zu machen hier mein(e) Problem(e):
Ich habe in einem Programm eine Text-Datei erstellt, die SO aussieht:
C++:
Dackel -- 01 24 Jahre alt. Name: Daniel
Dackel -- 02 19 Jahre alt. Name: Barbara
Dackel -- 03 06 Jahre alt. Name: Jung
Und mit DIESEM Code wollte ich sie auslesen:
C++:
#include "Dackel.hpp"
#include <fstream.h>
int main()
{
int Nummer;
int Jahre;
char Alter;
char Namen;
string Init;
string Name;
fstream Datei ("Dackel.txt");
while (Datei.good())
{
Datei.getline(Init, 10);
cout << Init;
Datei.getline(Nummer, 2);
cout << Nummer;
Datei.getline(Init, 12);
cout << Init;
Datei.getline(Jahre, 2);
cout << Jahre;
Datei.getline(Init, 18);
cout << Init;
Datei.getline(Name, 100);
cout << Name << "\n";
}
return 0;
}

Und ich bekomme einen Error. Also eigentlich sind es 6. Und zwar immer der Selbe bei der Zeile mit getline.

Und dann hab ich noch zwei Fragen. Und zwar:
1.) Ich hatte Probleme mit dem Erstellen der Datei. Er hat mir keinen Fehler erzeugt, er hat einfach die Datei nicht gemacht. Ich habe dann das Problem behoben, indem ich einfach eine leere Datei erstellt habe. Kann ich das nicht im Programm direkt machen, so dass ich den Benutzer den Dateinamen selbst auswählen lassen kann?
2.) Soweit ich mitbekommen habe, liest C++ nur bis zum erste nLeerzeichen ein. Und zwar auch bei getline und cin. Kann man da irgendwas drehn oder hab ich das nur flasch verstanden. Denn ich möchte auch und vor allem bei der Eingabe eines Namens gleichzeitig Vor- und Nachname eingeben und speichern können. Per cin!

ICh weiß, das waren jetzt viele Anliegen. Bitte helft mir ZUMINDEST bei dem Einlesen-Problem Danke im Voraus!
Übrigens, ein Sorry für die Anzeige der Textdatei im CPP-Code, aber ich habe keine Ahnung, wo ich herausfinde, welche Möglichkeiten ich da habe!
 
Und ich bekomme einen Error. Also eigentlich sind es 6. Und zwar immer der Selbe bei der Zeile mit getline.

Und der lautet wie?


1.) Ich hatte Probleme mit dem Erstellen der Datei. Er hat mir keinen Fehler erzeugt, er hat einfach die Datei nicht gemacht. Ich habe dann das Problem behoben, indem ich einfach eine leere Datei erstellt habe. Kann ich das nicht im Programm direkt machen, so dass ich den Benutzer den Dateinamen selbst auswählen lassen kann?

Hier ein Beispiel, um eine Datei zu erstellen und etwas hinein zu schreiben:

Code:
std::ofstream out( "filename.txt", ios::app );	// open the file
out << "Hello\n";				// append text
out.close();					// close the file

evtl. musst du "ios:app" an Deine wünsche anpassen. Zum Lesen benutzt du natürlich "ifstream",
 
Und der lautet wie?

Der Error lautet:
C++:
Error E2285 Dateiname.cpp Zeilennummer: Could not find a Match for
'istream::getline(string,int)' in function main()

Und ich habe bei Chip, verwendete ich bisher, auch eine Antwort bekommen. Uns zwar schicke ich die als Trackback mit! Ich hoffe, das funkt. Denn in der Vorschau kann ich den nicht sehen.

http://www.chip.de/c1_forum/thread.html?bwthreadid=1045525

Uns kann mir jemand bitte sagen, wo ich die ganzen [**]-Operatoren finden kann, denn eigentlich würde ich gerne, wenn ich wüsste wie, die Frage nicht als C++-Code, sondern als Textfeld ausgeben. Danke!
 
Zuletzt bearbeitet von einem Moderator:
Zurück