Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

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!

Fremdwörter? Erklärungen im Lexikon!
Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...

Unicode
Unicode ist ein international anerkannter Standard, der als universeller Zeichencode ("Universal Code") dient und durch das Unicode-Konsortium entwickelt und verwaltet wi...

QR-Code
QR-Codes, die Abkürzung für "Quick Response Codes", sind eine Form von zweidimensionalen Barcodes. Damit lassen sich Informationen schnell und effizient speiche...