Datei auslesen

gwaan

Mitglied
Hallo Leute,

ich habe einen Textdatei(input.txt) mit folgenden Inhalt:

1,0,1,1,3,5
2,0,2,2,4,8

Wie kann ich in C++ die Datei öffen und sie zeilenweise in einen String auslesen? Der String möchte ich nachher zerlegen mit Delimiter "," das ist aber ein anderes Thema...
In Java ist es kein Problem, aber in C++ ist es ein Kampf... ;-(

Grüße gwaan
 
alles klar... habe auch was gefunden

Code:
#include <string>
#include <sstream>
#include <fstream>
#include <iostream>
#include <iomanip>

using namespace std;

int main(int argc, char *argv[])
 {
  ifstream in("input.txt", ios::in | ios::binary);

    
  if (!in.is_open()) return 1;
  
  string str, fullstring;
  
  while( in >> str)
  fullstring += str;  
  cout <<str;
  
  system("PAUSE");
  return 0;
}

ich versteh nur nicht warum meine konsole nur kurz aufblinkt und wieder verschwindet. ich habe doch das system("Pause"); eingefügt...`das konnt man doch machen in c++ oder?

hat jemand nen tipp?
 
Ja hatten wir zum Beispiel hier
Ich will auch etwas aus einer textdatei lesen
aber funktionieren tut es nicht.
Ich programiere unter linux und benutze den
GNU compiler und beim compilieren
erhalte ich jedes mal einen Fehler.
mein Programm soweit:
Code:
    #include <iostream>
    #include <fstream>
    
    int main()
    {
    int x;
    ifstream infile("test.txt");
    infile >> x;
    std::cout >> x;}
    }

ich bekomme jedes mal die Fehlermeldung
'infile' undeclared (first use this function)

was mache ich falsch? Ich bin totaler Anfänger
also bitte nicht haun wenn ich was grundlegendes
falsch gemacht haben sollte

Gruß Benny
 
um ehrlich zu sein hat mir nichts weitergeholfen! habe immer noch folgendes problem --------------------------------------------------------------------------------

ich versteh nicht warum meine konsole nur kurz aufblinkt und wieder verschwindet. ich habe doch das system("Pause"); eingefügt...`das konnt man doch machen in c++ oder?

hat jemand nen tipp?

das ist mein code

Code:
#include <string>
#include <sstream>
#include <fstream>
#include <iostream>
#include <iomanip>

using namespace std;

int main(int argc, char *argv[])
{
ifstream in("input.txt", ios::in | ios::binary);


if (!in.is_open()) return 1;

string str, fullstring;

while( in >> str)
fullstring += str;
cout <<str;

system("PAUSE");
return 0;
}
 
Hi,

entweder, deine Datei wird nicht geöffnet (siehe return 1; ) oder das system("pause") wird wirklich nicht beachtet. Um das rauszufinden, brauchst du ja nur mal debuggen.
Du kannst ja mal getch() aus der conio.h aufrufen, die hat bei mir eigentlich immer funktioniert.
 
@niggo -> thx soweit

es liegt daran, dass er ein problem mit der input.txt hat aber ich weiß nicht warum... is ne ganz normale textdatei mit editor erstellt (und ANSI) hat jemand nen tipp?
 
Zuletzt bearbeitet:
ok funtioniert...

ich mache es folgendermaßen:

Code:
#include <iostream>
#include <cstdio>
#include <string>
#include <fstream>

using namespace std;

int main(int argc, char *argv[])
 {

   ifstream datei("d:\input.txt");
   if( !datei ) throw "Fehler beim Öffnen!";
   string text;
   datei >> text;
   cout<<text;
   datei.close();
   system("PAUSE");
}
 
kle-ben hat gesagt.:
Ja hatten wir zum Beispiel hier
Ich will auch etwas aus einer textdatei lesen
aber funktionieren tut es nicht.
Ich programiere unter linux und benutze den
GNU compiler und beim compilieren
erhalte ich jedes mal einen Fehler.
mein Programm soweit:
Code:
    #include <iostream>
    #include <fstream>
    
    int main()
    {
    int x;
    ifstream infile("test.txt");
    infile >> x;
    std::cout >> x;}
    }

ich bekomme jedes mal die Fehlermeldung
'infile' undeclared (first use this function)

was mache ich falsch? Ich bin totaler Anfänger
also bitte nicht haun wenn ich was grundlegendes
falsch gemacht haben sollte

Gruß Benny
Du solltest beachten, das alle Objekte, Klassen, Funktionen etc. der Standard C++ Bibliothek im Namensraum "std" definiert sind. Also schreibst du den jedesmal dazu (wie du's bei cout gemacht hast) oder du sagst
Code:
using namespace std;
bevor du ifstream benutzt.

Gruß
 
Hi.
gwaan hat gesagt.:
alles klar... habe auch was gefunden

Code:
#include <string>
#include <sstream>
#include <fstream>
#include <iostream>
#include <iomanip>

using namespace std;

int main(int argc, char *argv[])
 {
  ifstream in("input.txt", ios::in | ios::binary);

    
  if (!in.is_open()) return 1;
  
  string str, fullstring;
  
  while( in >> str)
  fullstring += str;  
  cout <<str;
  
  system("PAUSE");
  return 0;
}

ich versteh nur nicht warum meine konsole nur kurz aufblinkt und wieder verschwindet. ich habe doch das system("Pause"); eingefügt...`das konnt man doch machen in c++ oder?

hat jemand nen tipp?

Wenn es eine Textdatei ist, solltest du nicht ios::binary zum Öffnen verwenden.

Dann kannst du zeilenweise mit getline arbeiten:
Code:
ifstream datei ("daten.txt");
string zeile;
while (getline (datei, zeile)) {
  cout << zeile << endl;
}

Gruß
 
Zurück