Datei einlesen
-
Hallo,
ich möchte eine eine txt Datei einlesen. in dieser Textdatei steht folgendes:
<Land> Tabulator <Menge>Wie liest man sowas ein!!
ich kenne das mit Leerzeichen, wo man einfach..... inFile >> land >> menge;.. schreiben müsste um an die Daten ran zu kommen.
was muss man ändern damit man einen Tabulator in einer Zeile "überspringen" kann!
-
Hallo,
Mit einem Tabulator funktioniert das genau so.
Warum probierst du es nicht einfach aus?
-
#include <fstream> #include <string> #include <sstream> using namespace std; int main() { ifstream in("c:/my.txt"); string land1, menge1,land2, menge2, land3, menge3; in >> land1 >> menge1 >> land2 >> menge2 >> land3 >> menge3; // und wenn Du die Mengen in int's stecken willst istringstream is(menge1); int Menge1; is >> Menge1; // usw. return 0; } :bulb:
-
ABER:
was ist wenn sowas kommt:Zentralafrikanische Republik 13000
Vereinigte Arabische Emirate 91200
Kongo 38300wie sieht es da aus, was kann man da machen?
muss man vielleicht das wirklich genau mit den ASCII Tabulator Zeichen (9) trennen???
-
Zeile für Zeile einlesen (std::getline zB), am letzten Leerzeichen/Tabulator trennen und fertig.
Oder Wort für Wort einlesen und wenn es keine Zahl ist zum letzten Namen hinzufügen.
-
ok danke, muss da mal versuchen!!!
krieg ich schon irgendwie hin.danke für die hilfe!
aber eines würde ich noch wissen:
wenn man in einer Textdatei so eine Art trenner hat (z.B. :, |, ;, ....)
wie kann man das trenner-zeichen erkennen?[b]Pseudo-Code [/b] ifstream in (..); while( !in.eof() ) if( in == <trenner> ) in >> menge; in >> land;
-
was auch geht...
std::getline(stream, name, '\t'); std::getline(srteam, wert);umwandlung zu int etc. dann wie oben.
-
ach ok, super bin gar nicht auf Idee gekommen mit getline zu arbeiten und statt den standardwert '\n' => '\t' zu setzen.
dann kann man mit sicherlich auch jeden beliebigen Zeichen als trenner benutzen ':' oder ';'danke
-
ich habe versucht, das ganze durch ALT+0160 auf dem Ziffernpad zu lösen. Hat nicht ganz geklappt. er liest immer Á ein

Gruß,
Lauritz
-
aetbaar_444 schrieb:
wenn man in einer Textdatei so eine Art trenner hat (z.B. :, |, ;, ....)
wie kann man das trenner-zeichen erkennen?Hm, du könntest die Zeilen Zeichen für Zeichen durchgehen... ich würde allerdings erstmal alles in einen Buffer (std::vectorstd::string) einlesen. Kannst die Kommata ja immernoch wegmach0rn^^:
Klicksu!