Zahlen aus .txt Datei in Array speichern
-
Hallo,
wie kann ich Zahlen die durch Leertasten getrennt sind aus einer .txt-Datei (siehe unten) auslesen und in einem Array speichern?
Text Datei: 3 10 13 43 10 13 4 10 13 25 10 13 24 10 13 159 10 13 255 10 13 0 10 13 0 10 13 0 10 13 0 10 13 0 10 13 0 10 13 0 10 13 0 10 13 0 10 13 0 10 13 0 10 13
Vielen Dank für eure Hilfe
-
-
ihaq schrieb:
wie kann ich Zahlen die durch Leertasten getrennt sind aus einer .txt-Datei (siehe unten) auslesen und in einem Array speichern?
So:
#include <iostream> #include <fstream> #include <iterator> // istream_iterator<> #include <vector> int main() { using namespace std; ifstream txtDatei( "input.txt" ); vector< int > einArray( (istream_iterator< int >( txtDatei )), istream_iterator< int >() ); if( !txtDatei.is_open() || !txtDatei.eof() ) cerr << "Fehler beim Lesen der Datei" << endl; return 0; }
Gruß
Werner
-
Das müsste eigentlich gehen ... zum testen bin ich zu faul :p
Kannst das ja benutzen bis es einer der Forengötter hier zerlegt#include <iostream> #include <string> #include <sstream> #include <fstream> #include <vector> using namespace std; int main() { vector<int> vec; fstream file; file.open("array.txt", ios::in); if( !file.good() ) { cerr << "Could not open file" << endl; return -1; } while( !file.eof() && file.good() ) { std::string line; getline(file,line); istringstream str(line); while( !str.eof() ) { string zahl_txt; str >> zahl_txt; istringstream converter(zahl_txt); int zahl; converter >> zahl; if( !converter.eof() ) { //Fehler, keine gültige Zahl } else vec.push_back(zahl); } } file.close(); vector<int>::iterator vit = vec.begin(); for( ; vit != vec.end(); ++vit ) cout << *vit << endl; }
Hätte man sich aber auch ergoogeln können.
Ein Grundlagenbuch häts jedoch auch getan! :p
-
wieso mit einem vector? das geht doch auch einfach mit nem array;
wobei man jetzt überlegen müsste, was einfacher und praktischer ist;
aber wenn er nach dem auslesen von ein paar zahlen fragt, würde ich doch eher eine einfache methode wählen, bevor man jdm überfordert.
-
Tim06TR schrieb:
wieso mit einem vector? das geht doch auch einfach mit nem array;
wobei man jetzt überlegen müsste, was einfacher und praktischer ist;
aber wenn er nach dem auslesen von ein paar zahlen fragt, würde ich doch eher eine einfache methode wählen, bevor man jdm überfordert.Weiss man denn wie gross das array sein soll? Daher der vector
-
Hi!
ihaq schrieb:
Hallo,
wie kann ich Zahlen die durch Leertasten getrennt sind aus einer .txt-Datei (siehe unten) auslesen und in einem Array speichern?
Text Datei: 3 10 13 43 10 13 4 10 13 25 10 13 24 10 13 159 10 13 255 10 13 0 10 13 0 10 13 0 10 13 0 10 13 0 10 13 0 10 13 0 10 13 0 10 13 0 10 13 0 10 13 0 10 13
Vielen Dank für eure Hilfe
Guckst du hier:
#include <iostream> #include <fstream> using namespace std; #define N 10 int main() { ifstream s ( "test.txt" ); int array[N], i=0; while ( i<N && !s.eof() ) s >> array[i++]; return 0; }
Nimm doch lieber nen Vector, brauchst dich nicht um Arraygrenzen kümmern.
Gruß,
B.B.
-
wie dumm seid ihr eigentlich, dass ihr für jeden die hausaufgaben macht?
-
gg schrieb:
wie dumm seid ihr eigentlich, dass ihr für jeden die hausaufgaben macht?
Doof genug, siehste doch.
-
Vielen Dank
Ich habe jetzt die Methode von Big Brother verwendet, weil ich die Arraygrenze weiß und sich diese auch nicht ändert.
Außerdem verstehe ich das mit den Arrays als Anfänger einigermaßen.
-
gg schrieb:
wie dumm seid ihr eigentlich, dass ihr für jeden die hausaufgaben macht?
Ich bin auch immer über jede Hilfe froh.
Arrays als Anfänger ist okay, aber ich würde früh mit Vector anfangen. Vector nimmt einem soviele Probleme weg und ist einfach zu handhaben.
-
FreakY<3Cpp schrieb:
gg schrieb:
wie dumm seid ihr eigentlich, dass ihr für jeden die hausaufgaben macht?
Ich bin auch immer über jede Hilfe froh.
Arrays als Anfänger ist okay, aber ich würde früh mit Vector anfangen. Vector nimmt einem soviele Probleme weg und ist einfach zu handhaben.
Und was hat das damit zu tun, dass man fertige lösungen hinschreibt?