Computerhilfen.de Logo
Forum
Tipps
News

txt-Datei einlesen

Hallo Leute,

ich soll per c++ eine txt-datei einlesen, und habe dazu einen Code erstellt. Leider gibt er nur die erste Zeile meiner txt-Datei aus. Was habe ich falsch gemacht?
#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;
}



Danke für eure Hilfe!!


Antworten zu txt-Datei einlesen:

Wenn du das ganze schon nicht mit std::string machst,dann ersetze die while(datein.eof()!=true) Schleife besser durch das hier:
----------------------------
datein.seekg(0,ios::end);
unsigned int Size = streamoff(datein.tellg());
char* Buffer = new char[Size];
datein.seekg(0,ios::beg);
datein.read(Buffer,Size);
----------------------------

Hi,

Danke für dem Tip! Kannst du mir vielleicht auch sagen was dein Code genau bewirkt?
Ich habe ihn jetzt an die Stelle der while-Schleife gesetzt, aber leider tut sich nichts.
Es kommt zwar keine Fehlermeldung, aber die Datei wird auch nicht eingelesen und am Bildschirm
widergegeben.

Danke für die Hilfe!


#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;
   }


   datein.seekg(0,ios::end);
   unsigned int Size = streamoff(datein.tellg());
   char* Buffer = new char[Size];
   datein.seekg(0,ios::beg);
   datein.read(Buffer,Size);
}

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

logo weil keine ausgabe geschieht ;D

der code lädt die text datei in einem buffer

die ausgabe musst du selber machen

z.B

std::cout << Buffer << std::endl;

ps: vergiss ned:
delete [] Buffer;
Buffer = NULL;

Jep,void hat Recht.

Jo, genau. Windows.exe hat Recht!

Ganz genau, ,,,,,, !!!

Jep,ich hab recht.

Jawoll,

ihr habt alle Recht! Wer logisch denken kann ist klar im Vorteil! Auch ohne programmieren zu können, hätte ich erkennen müssen, dass nach der Eingabe auch eine Ausgabe folgen muss.

Also Danke!

Gruß


« Hot spots in Mozilla (netscape)Speichern und Drucken in Delphi »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!