File-Verarbeitung in C++ bzw. getline(...) Funktion UNTER LINUX

Post Reply
Message
Author
embryo

File-Verarbeitung in C++ bzw. getline(...) Funktion UNTER LINUX

#1 Post by embryo »

Habe ein großes Problem mit der Funktion getline(...), die eine gesamte Datei-Zeile (default) in einen string überträgt. Das ganze Funktioniert unter Windows (Borlan C++ Builder) ohne Probleme:
(#include <fstream.h>)
...
ifstream in("d:/datei.txt");
string buff;
while(!in.eof()) {
getline(in,buff,in.widen('\t'));
cout << buff << endl;
}
in.close();

Unter Linux habe ich jedoch das Problem, dass anscheinend die "beispielstream.widen(char)" Funktion "nicht existiert"!
Nur mit "getline(in,buff);" funktioniert das ganze natürlich super, nur eben wird in dem Fall zeilenweise eingelesen (".widen('
')"), was ich aber nicht will! Mit der "widen(char)" Funktion will ich die Datei nicht zeilenweise, sondern nach Tabulatoren (oder Komma oder was auch immer...) als Trennzeichen einlesen.

Wie erreiche ich das bzw. warum geht das nicht unter Linux? Mit dem Builder unter Windows hauts doch auch hin! Ist etwa die fstream-Library unter Linux anders aufgebaut?

Danke für Eure Hilfe!

embryo

Re: File-Verarbeitung in C++ bzw. getline(...) Funktion UNTER LINUX

#2 Post by embryo »

Korrigiere: ..nur eben wird in diesem Fall zeilenweise eingelesen (".widen('
')")

das in den Klammern der widen Funktion soll ein "Newline-Zeichen" (\ n) sein

embryo

Re: File-Verarbeitung in C++ bzw. getline(...) Funktion UNTER LINUX

#3 Post by embryo »

Hab mein Problem beseitigt! Einfach die "komische" .widen() Funktion weglassen und den char '\ t' als dritten Parameter der getline Funktion übergeben.

Das kommt davon wenn man Code einfach so kopiert und nicht richtig darüber nachdenkt! Mich würde aber trotzdem interesieren, was die widen() Funktion denn eigentlich macht?

Post Reply