"in den Linden 15" - Leerzeichen lesen
-
Hi! Der Anfänger braucht wieder Hilfe
*liebschau*
Ich habe eine Adresse in einer Datei "Arbeiter.xxx", z. B.
Max Muster
In den Linden 15
00000 MusterhausenWie kann ich jetzt im Programm, das in Adressen bestimmte Wörter suchen soll, "In den Linden 15" lesen. Die anderen Sachen kann man ja schon im String speichern, aber wenn ich "in.getline(Strasse, 100);" schreibe, würde er für Strasse ja wahrscheinlich auch "00000 Musterhausen" mitlesen und das ist in meinem Falle ziemlich scheiße...
Gibbet da n Trick? Im Sinne von "in << Strasse << endl;" vielleicht?!Danke im voraus,
Mr. B.
-
in << nummer << stadt;
Whitespaces werden "überlesen"...
-
Quatsch, andersrum. Wie dumm von mir.
filestream >> nummer >> stadt;
-
mit getline liest er immer nur maximal eine Zeile (getline == Hole Zeile).
btw. würde ich nicht std::istream::getline sondern std::getline und std::string benutzen
-
in >> sArbeiter.Vorname; in >> sArbeiter.Nachname; in.getline(sArbeiter.Strasse, 100); in >> sArbeiter.PLZ; in >> sArbeiter.Ort; in >> sArbeiter.BLZ; in >> sArbeiter.Kontonummer;
Wenn ich das da oben schreibe, dann erhalten ich folgendes im Programm:
Vorname: Max
Nachname: Mustermann
Strasse:
PLZ: Zur
Ort: Schlossallee
BLZ: 5
Kontonummer: 55555Was mach ich falsch? Weiß das denn keina?
-
Wenn "in.getline" nur eine Zeile lesen würde, müsste meins da oben ja klappen, aber der Straßenname verteilt sich ja über alles...
-
versuch es doch mal mit:
in.getline(sArbeiter.Strasse, 100,'\n');
mit dem Parameter '\n' gibst du der getline-Fkt mit, daß max. 100 Zeichen aber auch maximal bis zu einem Zeilenumbruch gelesen werden soll
-
getline(in,sArbeiter.strasse);
Devil
-
@devil81:
aberin.getline(zeile, 100,'\n');
funktioniert, egal ob
ifstream in;
oder
strstream in;
oä
warum stehst du aufdevil81 schrieb:
getline(in,sArbeiter.strasse);
-
getline(in,foo);
funktioniert auch mit sstream und istream...
Nur nimmt es nebenbei noch std::strings und keine C-Strings, was dafür sorgt, dass man sich keinen Kopf um die Zeilen länge machen muss und einfach mal 1000byte reserviert obwohl maximal vielleicht 100byte in jeder Zeile stehen
btw. '\n' ist schon das default Zeichen für den Zeilenumbruch
-
okay, ihr habt gewonnen!
thanx'!
-
Moment... Ich hab
in.getline(sArbeiter.Strasse, 100, '\n');
eingegeben und das ganze bleibt so wie es schon vorher war. Also dass sich die Strasse über den Rest verteilt.
Soll ich vielleicht mal die ganze Funktion kopieren, damit euch das Problem klarer wird? Vielleicht mach ich ja war ganz anderes falsch!?
(Meine Antwort kam so spät, weil ich auf Klassenfahrt war)
Mr. B