textdokument einlesen
-
hallo leute!
ich würde gern wissen ob es möglich ist, ein textdokument zeile für zeile in arrays zu speichern...( und wenn ja, wie?)
ich habe zwar schon gesucht, jedoch nichts gefunden ( entweder bin ich zublöde dafür oda niemand braucht sowas
)Bitte helft mir!
-
Nachdem du eine Zeile eingelesen hast, fügst du sie mit push_back einem vector<string> hinzu.
-
ich bin blutiger anfänger.... leider weiß ich nicht was du meinst, könntest du mir das BITTE erklären?

-
Du erstellst vor dem Einlesen einen Vektor (eine Implementation eines dynamischen Arrays):
vector<string> zeilen;
Dann für jede Zeile:
zeilen.push_back(zeile);Hier steht mehr:
http://www.cplusplus.com/reference/stl/vector/
-
ich schau mal ob ich das hinkriege.
DANKE!!
-
also ich krigs nicht hin...
hier is mien programm zum einlesen, aber was muss ich da jetzt noch machen das es funktioniert???
#include <fstream>
#include <conio>
#include <string>
#include <iostream>
#include <stdio>
using namespace std;int main(int argc, char*argv[])
{
fstream f;
char cstring[256];f.open("test.txt", ios::in);
while(!f.eof())
{
f.getline(cstring, sizeof(cstring));}
f.close();
getch();
return 0;
}
-
Habe ich doch schon beschrieben

Außerdem musst du <vector> einbinden.
-
könntest du mir bei dem programm BITTE helfen? ich kriegs nicht gebacken...

bitte zeig mir wo was hingehört...
-
Sofern du weißt was while, getline und push_back machen, sollte es ziemlich klar sein, was wo hingehört.
Aber gut:
#include <fstream> #include <vector> using namespace std; int main(int argc, char** argv) { fstream f("test.txt", ios::in); vector<string> lines; string line; while(f.good()) { getline(f,line); lines.push_back(line); } }
-
O0o ich hab das grade ausprobiert und habe bemerkt, dass mein compiler so alt ist, dass er vector nicht kennt.....
was mach ich jetzt?... ich muss nämlich den compiler verwenden...

-
Ist zwar sehr komisch dass du sozusagen nen vektor nicht nutzen darfst, aber dann nehm doch n stink normales array.
Gruß freeG
-
kann man das mit list auch machen??
-
und wie ginge das mit nem normalen array?
-
tuni schrieb:
kann man das mit list auch machen??
Ja, geht mit list ganz genauso.
Würde mich aber sehr wundern, wenn dein Kompiler list mitliefert, aber nicht vector.tuni schrieb:
und wie ginge das mit nem normalen array?
Ich vermute allmählich, dass du dein C++-Buch oder Skript noch nie aufgeschlagen hast.
Unsere, aber vor allem auch deine Zeit wäre sinnvoller investiert, wenn du dies nun tun würdest.
-
oke...
noch eines: warum gibt mir das programm die gespeicherten nicht aus( es geht nicht...)
#include <vector>
#include <iostream>#include <string>
using namespace std;
int main(int argc, char** argv)
{
fstream f("test.txt", ios::in);
vector<string> lines;
string line;
while(f.good())
{
getline(f,line);
lines.push_back(line);
}cout<<lines;
system("pause");
return 0;
}
-
Du kannst Vektoren standardmäßig nicht direkt ausgeben.
Gib die Zeilen stattdessen einzeln aus (während du sie einliest).
-
kann man denn dan die zeilen im vektor ordnen oda bearbeiten?
-
da iteratoren wohl jetzt zuviele Fragen aufwerfen

verwende den Zugriff über den Index mittels [].for(int i=0; i<lines.size();++i) cout << lines[i];tuni schrieb:
kann man denn dan die zeilen im vektor ordnen oda bearbeiten?
lern doch nicht alles auf einmal und verinnerliche erstmal das bisherige

-
Ja, du kannst auf die Elemente im Vektor genauso zugreifen wie in einem Array.
Vertauschen kannst du Elemente mit swap.
Alphabetisch sortieren mit sort(zeilen.begin(),zeilen.end());
-
das kapier ich schon
