getline(cin, string) Funktion
-
Die getline(cin, string)-Funktion aus der string-Klasse schreibt nach meinem Wissen den Userinput in einen von mir definierten string. Wie macht das diese Funktion? Da die Funktion aus der string-Klasse ist, bin ich richtig mit der Annahme, dass ich selber eine Funktion schreiben kann, welche einer Variable, die in der Methode / Funktion liegt, welche sie aufgerufen hat, einen Wert zuweist? Falls ja, wie? Falls nein, wie schafft das dann die getline-Methode?
Danke schon Mal für eure Antworten
-
Ambiguity schrieb:
Die Funktion schreibt nach meinem Wissen den Userinput in einen von mir definierten string. Wie macht das diese Funktion?
Welche Funktion?
Soll heißen, der Posting-Text muss alleine funktionieren, auch ohne Titel. Damit man überhaupt quoten kann.Ambiguity schrieb:
Da die Funktion aus der Standardbibliothek ist,
Nein, im Standard ist keine getLine. Oder meinste doch eine andere?
Ambiguity schrieb:
bin ich richtig mit der Annahme, dass ich selber eine Funktion schreiben kann, welche einer Variable, die in der Methode / Funktion liegt, welche sie aufgerufen hat, einen Wert zuweist?
Keine Ahnung, was mir der Satz sagen soll.
Ambiguity schrieb:
Falls ja, wie? Falls nein, wie schafft das dann die getLine-Methode?
Keine Ahnung, welche getLine-Methode Du da ausgegraben hast. In welcher Klasse ist denn diese Methode?
-
volkard schrieb:
Ambiguity schrieb:
Die Funktion schreibt nach meinem Wissen den Userinput in einen von mir definierten string. Wie macht das diese Funktion?
Welche Funktion?
Soll heißen, der Posting-Text muss alleine funktionieren, auch ohne Titel. Damit man überhaupt quoten kann.Ambiguity schrieb:
Da die Funktion aus der Standardbibliothek ist,
Nein, im Standard ist keine getLine. Oder meinste doch eine andere?
Ambiguity schrieb:
bin ich richtig mit der Annahme, dass ich selber eine Funktion schreiben kann, welche einer Variable, die in der Methode / Funktion liegt, welche sie aufgerufen hat, einen Wert zuweist?
Keine Ahnung, was mir der Satz sagen soll.
Ambiguity schrieb:
Falls ja, wie? Falls nein, wie schafft das dann die getLine-Methode?
Keine Ahnung, welche getLine-Methode Du da ausgegraben hast. In welcher Klasse ist denn diese Methode?
Stimmt, tut mir Leid, ist von der string-Klasse und sie heißt "getline" anstatt "getLine" (in Java hätte man sie getLine genannt *hust*).
http://www.cplusplus.com/reference/string/string/getline/
Beispielcode:
#include <iostream> #include <string> using namespace std; int main() { string userInput; cout << "Geb was ein" << endl; getline(cin, userInput); cout << userInput << endl; return 0; }
Das ganze schreibt den Userinput in eine Variable (und zwar nicht nur bis zum nächsten Leerzeichen, sondern alles, weswegen sie nach Quelle dem einfachen "cin >> Variable" bevorzugt werden soll). Was ich nicht verstehe ist, wie die Funktion es schafft, das in die Variable zu schreiben, die ich in meine eigene Klasse geschrieben habe.
Danke für deine Hilfe
-
Ambiguity schrieb:
Was ich nicht verstehe ist, wie die Funktion es schafft, das in die Variable zu schreiben, die ich in meine eigene Klasse geschrieben habe.
Wovon redest du? Wir können nicht in deinen Kopf gucken. Kontext!
-
Ambiguity schrieb:
Stimmt, tut mir Leid, ist von der string-Klasse und sie heißt "getline" anstatt "getLine" (in Java hätte man sie getLine genannt *hust*).
Das ist keine Methode, sondern eine freie Funktion.
Ambiguity schrieb:
Das ganze schreibt den Userinput in eine Variable (und zwar nicht nur bis zum nächsten Leerzeichen, sondern alles, weswegen sie nach Quelle dem einfachen "cin >> Variable" bevorzugt werden soll). Was ich nicht verstehe ist, wie die Funktion es schafft, das in die Variable zu schreiben, die ich in meine eigene Klasse geschrieben habe.
Das geht eigentlich wegen des Referenz-Zeichens da.
stream& getline (istream& is, string**&** str);void setInt(int &i)//weil hier per Referenzparameter gefangen { i=17; } int main() { int m; setInt(m);//kann m setzen cout<<m<<'\n'; }
-
volkard schrieb:
Ambiguity schrieb:
Stimmt, tut mir Leid, ist von der string-Klasse und sie heißt "getline" anstatt "getLine" (in Java hätte man sie getLine genannt *hust*).
Das ist keine Methode, sondern eine freie Funktion.
Ambiguity schrieb:
Das ganze schreibt den Userinput in eine Variable (und zwar nicht nur bis zum nächsten Leerzeichen, sondern alles, weswegen sie nach Quelle dem einfachen "cin >> Variable" bevorzugt werden soll). Was ich nicht verstehe ist, wie die Funktion es schafft, das in die Variable zu schreiben, die ich in meine eigene Klasse geschrieben habe.
Das geht eigentlich wegen des Referenz-Zeichens da.
stream& getline (istream& is, string**&** str);void setInt(int &i)//weil hier per Referenzparameter gefangen { i=17; } int main() { int m; setInt(m);//kann m setzen cout<<m<<'\n'; }
Genau das habe ich gesucht, danke! Macht Sinn so.