Verstehe String Array nicht
-
#include <string> #include <iostream> int main() { std::string str; std::getline(std::cin, str); st::cout << str << std::endl; return 0x0; }
-
Skym0sh0 schrieb:
weil std::cin nur bis zum nächsten leerzeichen liest. dazu zählt leertaste, enter und auch tabs
aber das kann man einstellen theoretischWie kann man das einstellen?
-
ganz simpel scheints nicht zu sein, kannst mal hiergucken
-
Also ich habe jetzt bei mir auf meinem Netbook in Zeile 10 folgendes stehen:
getline (cin Array)"getline" und "Array" sind rot unterringelt.
Bei "getline" kommt die Meldung
Error: Keine Instanz von Überladenen Funktionen "getline" stimmt mit der Argumentenliste überein.Bei "Array" kommt die Meldung
Error: Es wurde ein ")" erwartet.Edit:
Hier steht etwas interessantes und vielleicht was passendes:
http://www.cplusplus.com/reference/iostream/istream/getline/
Ich habe demzufolge jetzt in Zeile 10 folgendes geschrieben:
cin.getline(Array);Dennoch sind der Punkt und die schließende Klammer rot unterringelt.
Beim Punkt kommt die Meldung
Error: Keine Instanz von Überladenen Funktionen "std::basic_istream>_Elem,_Traits>::getline[mit_Elem?char,_Traits?std::char_traits<char>]" stimmt mit der Argumentenliste übereinBei der Klammer kommt die Meldung
Error: Zu wenig Argumente im Funktionsaufruf.
-
Da fehlt ein Komma. Und nicht Array, sondern std::string, wie oben gezeigt.
-
@out:
Siehe edit
-
Zeig mal nochmal deinen jetzigen Code.
-
#include <iostream> #include <string> using namespace std; int main() { char Array[50000]; cout << "Geben Sie eine Zeichenfolge ein!" << endl; cin.getline(Array); cout << "Das haben Sie eingegeben: " << endl; cout << Array << endl; cout << endl; return 0; }
-
#include <iostream> #include <string> using namespace std; int main() { std::string Array; cout << "Geben Sie eine Zeichenfolge ein!" << endl; getline(cin,Array); cout << "Das haben Sie eingegeben: " << endl; cout << Array << endl; cout << endl; return 0; }
-
Ist bei Dir das "getline" nicht rot unterringelt?
-
silent_max schrieb:
Ist bei Dir das "getline" nicht rot unterringelt?
Ne, weils ja richtig ist.

-
Weil bei mir ist es rot unterringelt...
-
Sicher, dass du <string> inkludiert hast?
Sicher, dass du das Komma zwischencinundArraynicht vergessen hast?
-
Ganz Sicher ...
Ach ich lass das jetzt ...
Ich hocke schon seit um 14 Uhr vor dem Netbook... vielleicht sehe ich daher den Fehler nicht.
Aber Dir out ersteinmal danke für die Antworten.
Gruß
Max
-
silent_max schrieb:
...vor dem Netbook...
hehe^^, vllt ist ja das der fehler

welchen compiler bzw. welche IDE benutzt du denn?
-
silent_max schrieb:
Ist bei Dir das "getline" nicht rot unterringelt?
Du benutzt ein char - Array. getline möchte aber einen string haben.
Also nicht:char Array[50000];sondern:
string myVariable; getline(cin, myVariable);Außerdem schreibst Du im Thread-Titel was von String-Arrays, in Deinem Code dreht sich aber alles um char-Arrays ... was genau möchtest Du denn nun wirklich?
-
Sorry für die späte Antwort.
Ich möchte halt per Konsolenanwendung einen Text, der beliebig lang ist, eingeben können. Deshalb habe ich ja den Array mit 50000 deklariert bzw. initialisiert.
Ist dafür eigentlich ein Array geeignet? Falls ja, wie muss ich den Array deklarieren? Weil anscheinend ist der Datentyp char der falsche...
Gruß
Max
-
Wie oft muss man noch std::string erwähnen? Der kann übrigens auch 50001-Zeichen.
-
Achso ... das hat ja rein gar nichts mit Array zu tun...
Sorry, ich stand die ganze Zeit auf dem Holzweg. Ich habe die ganze Zeit gedacht, dass ich nur
string Array[50000];einzugeben habe.
Oder hat das im Endeffekt doch mit Arrays zu tun? Ich glaube eher weniger, oder??
Gruß
Max
-
Ja, im Endeffekt hat das doch mit Arrays zu tun. Aber nicht für Dich als Benutzer der Klasse string.
Lern Grundlagen.