PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mal ne frage zu streams (c++)


Chris Lux
2002-12-04, 14:54:21
std::istream tIn; // unser stream der text enthaelt
std::string tLine; // unser string, der nun die zeilen halten soll

das problem ist in tIn stehen dateinamen, die auch ' '(space) enthalten duerfen. wenn man nun folgendes probiert hat man immer nur einen teil des dateinamens im string:

tIn >> tLine;

dazuz gibt es nun getline(..) :) das weiss ich. nur fuer getline muss man wieder die guten alten C char* benutzen. meine frage nun, wie sehen euere workarounds aus... denn ich find das hier sehr haesslich:

char* tTemp = new char[1024];
tIn.ignore(1); // weil ich nicht am anfang der zeile anfang zu lesen
tIn.getline(tTemp, 1024);
tLine = tTemp;
delete [] tTemp;

vor allem kann es ja passieren, dass die zeile mehr als 1024 (oder was man eben will) zeichen hat.

Chris Lux
2002-12-05, 10:28:57
ok hab was gefunden:


std::istream in;
std::string str;

std::getline(in, str);
str.erase(0, str.find_first_not_of(" "));


das sieht doch schick aus und macht auch was es soll.. (und ja so benutz ich es natuerlich nicht, da sind noch ne menge sachen zum abfangen von fehlern, das heir ist nur der kern;))