001
05.01.2008, 16:11 Uhr
0xdeadbeef
Gott (Operator)
|
Naja, in irgendeiner Weise wirst du schon definieren müssen, was zusammengehört. Allein das Ignorieren der Leerzeichen wird dir nicht helfen, dann wird nämlich auch noch die Telefonnummer am Ende mit eingelesen, und eine konstante Anzahl Terme hast du ja in der Adresse auch nicht. Mit anderen Worten, das Format, das du da benutzt, kann das, was du willst, garnicht leisten. Sinnvoll wäre u.U., stattdessen z.B. CSV zu benutzen, dann sähe deine Zeile aus wie folgt:
Code: |
britney,spears,am bahnhof 33,555343563
|
Oder, wenn die Terme Kommata enthalten können, halt ein anderes Trennzeichen, das nicht benutzt wird. Semikolon zum Beispiel. Jedenfalls kannst du dann den Kram mit std::getline locker da rauslesen, also
C++: |
#include <istream> #include <string>
std::istream &operator>>(std::istream &in, Person &p) { std::string vorname, nachname, adresse, telnr;
std::getline(is, vorname, ','); std::getline(is, nachname, ','); std::getline(is, adresse, ','); std::getline(is, telnr, ',');
p.setnachname(nachname); p.setvorname(vorname); p.setadress(adresse); p.setphonenumber(telnr); }
...
Person p; std::cin >> p;
|
-- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 05.01.2008 um 16:12 Uhr von 0xdeadbeef editiert. |