parameterübergabe von cin an funktion
-
interpreter schrieb:
Shlo: Wo er Recht hat, hat er Recht. Das _ist_ Overkill, KISS:
nman schrieb:
std::string param; cin >> param; foo(param); // oder auch param.c_str() wenn Du gerne C-Strings verarbeitest
KISS
Dir scheint der Zusammenhang nicht bekannt zu sein, GAYS
-
Shlo schrieb:
Dir scheint der Zusammenhang nicht bekannt zu sein, GAYS
Was soll das denn?
Noch nie vom KISS-Prinzip gehört?
Was bringt die Iterator-Lösung hier an Vorteilen gegenüber der string-Variante?
-
Shlo schrieb:
interpreter schrieb:
Shlo: Wo er Recht hat, hat er Recht. Das _ist_ Overkill, KISS:
nman schrieb:
std::string param; cin >> param; foo(param); // oder auch param.c_str() wenn Du gerne C-Strings verarbeitest
KISS
Dir scheint der Zusammenhang nicht bekannt zu sein, GAYS
Das sollte verdeutlichen, dass ich ebenfalls ein Befürworter von "Keep It Simple,
Stupid" bin. Deinen Kommentar dazu muss man wohl nicht weiter kommentieren...
-
nman schrieb:
Shlo schrieb:
Dir scheint der Zusammenhang nicht bekannt zu sein, GAYS
Was soll das denn?
Eine Abkürzung, auch als Akronym bekannt. Aber dass ihr beide so weit nicht denken könnt, scheint sehr offensichtlich zu sein...
-
Shlo schrieb:
nman schrieb:
Shlo schrieb:
Dir scheint der Zusammenhang nicht bekannt zu sein, GAYS
Was soll das denn?
Eine Abkürzung, auch als Akronym bekannt. Aber dass ihr beide so weit nicht denken könnt, scheint sehr offensichtlich zu sein...
Schon erbärmlich. Du blickst nicht durch und versuchst deine Unfähigkeit auf uns abzuwälzen. Deine plumpen Provokationsversuche kannst du dir auch sparen. EoD für mich.
-
interpreter schrieb:
Schon erbärmlich. Du blickst nicht durch und versuchst deine Unfähigkeit auf uns abzuwälzen. Deine plumpen Provokationsversuche kannst du dir auch sparen. EoD für mich.
Entweder dein Hirn ist dermaßen klein, dass du bis dato nich kappiert hast, warum ich die ganzen Beiträge in diesem Thread verfasst habe, oder du bist einfach ein medizinischer Notfall, was in beiden Fällen nicht gut sein kann, vor allem für dich. eod für mich auch.
-
Shlo schrieb:
nman schrieb:
Was soll das denn?
Eine Abkürzung, auch als Akronym bekannt. Aber dass ihr beide so weit nicht denken könnt, scheint sehr offensichtlich zu sein...
Und wofür bitteschön soll "GAYS" eine Abkürzung sein?
Hast Du irgendein persönliches Problem mit mir?
Dann schreib meinetwegen einen neuen Post in den "Themen rund um Offtopic" oä, kein Grund den Thread hier noch mehr zuzumüllen.
-
Hi,
danke für die vielen antworten, aber einen streit wollte ich damit eigentlich nich provozieren.
das mit
char buffer[100];
cin >> buffer;
....wollte ich gerade nicht nehmen, da ich den speicher dynamisch reservieren wollte. Ich muß aber zugeben, der rest ist noch etwas zu hoch für mich.
std::string param;
cin >> param;
foo(param);
Was macht hier eigentlich die erste Zeile? (ok, Methode string von Klasse std wenn ich mich nicht richtig irre und weiter?)mfg
Andreas78
-
Hallo,
die erste Zeile:
std::string param;
definiert ein Objekt der Klasse string. Mit der string-Klasse ist es einfach,
mit Strings zu arbeiten, wie z. B. Substrings zu bilden, zu suchen, loeschen,
einfuegen, all das, was man bei C-Strings von Hand machen muss.cin >> param;
Hier wird ein Wort, welches man eingibt, als String in dem Objekt 'param'
abgelegt.foo(param);
Hier wird einfach nur das Objekt 'param' an die Funktion foo uebergeben. Was
dann damit geschiet, kommt ganz darauf an, wie foo definiert ist. Die Funktion
koennte z. B. so aussehen:void foo(std::string& bar) { bar = "Jetzt steht hier ein anderer String drinne"; }
Hier nimmt die Funktion eine Referenz auf ein string-Objekt entgegen und
weist diesem den o. stehenden String zu. Mit der Referenz wird sichergestellt,
dass keine Kopie des Originals erstellt und lokal veraendert wird, sondern
dass das Originalobjekt veraendert wird....aber einen streit wollte ich damit eigentlich nich provozieren.
Das brauchtest du auch gar nicht. In letzter Zeit ergibt sich das von alleine.
mfg
v R
-
hi,
@virtuell Realisticer
Vielen Dank für deine ausführliche Anwort, ich glaub jetzt hab ichsmfg
Andreas
-
Hi!
Ein Hinweis noch, std ist keine Klasse sondern ein Namensbereich (namespace). Deswegen schreibt man meist in seiner Anwendung:
using namespace std;
Damit man nicht immer bei der Verwendung von Typen/Methoden aus std "std::" davor schreiben muss.
Code-Hacker