txt-Datei einlsen
-
Hi Leute,
von C++ habe ich leider nicht sonderlich viel Ahnung. Um eine txt-Datei einzulesen habe ich mir folgenden Code zusammengestückelt:
[cpp ]#include <iostream>
#include <fstream>
#include <string>
using namespace std;int main(int argC, char ** argV)
{
ifstream datein; //Erstellung der Klasse ifstream
string datei;
char zeile[500]; //Bytes große Array
char zeichen;
if(argC > 1)
{
datei = argV[1];
}
else
{
cout <<"Bitte geben Sie den Pfad f\x81""r die einzulesende Datei an!"<< endl;
cin >> datei;
}
datein.open(datei.c_str()); //Anwendung der Methode c_str()
if (datein == false)
{
cerr <<"Datei konnte nicht ge\x94""ffnet werden"<< endl;
return 0;
}while (datein.eof() !=true) //Anwendung der Methode .eof()
{datein.get(zeile, sizeof(zeile)/sizeof(zeile[0])); // Der Array endet immer mit einer Null, nicht ASCII-Null!
cout << zeile;
zeichen = zeile[0];
}
datein.close(); //Anwendung der Methode .close()
return 0;
}
[/cpp ]Leider liest er damit nur die erste Zeile meiner txt-Datei ein. Ich hab da sicherlich was grundsätzliches nicht verstanden.
Kann mir jemand dazu helfen?Danke!
-
Dieser Thread wurde von Moderator/in Unix-Tom aus dem Forum MFC mit dem Visual C++ in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Schau mal in die FAQ: Dateien und Ströme
-
Wie sieht denn deine Eingabdatei aus? Wenn die nur aus 2 Zeilen besteht versuch mal in der letzten Zeile noch ein \n ->also einaml enter anuzhängen.
Sonst versuche:vorlesen
solange nicht EOF
{
verarbeiten der Zeile
nachlesen
}wobei vorlesen und nachlesen mit einem datein.getline realisiert wird. SO wird die ganze zeile in deine char * zeile gelesen und in verarbeiten suchst du dir die zeichen raus, wie du sie auch immer brauchst. Kannst mit ner Schleife die zeile durchlaufen