2017-12-25 3 views
0

Heute lerne ich Strings und Arrays in cpp. In meiner Schule haben sie uns gelehrt, eine Zeichenkette als Benutzereingabe zu verwenden, man muss gets() verwenden, aber es funktioniert nicht mit irgendeinem der Compiler, die ich habe. Ich habe bereits versucht, mit Cstdio-Bibliothek, noch Fehler. Ich weiß cin.getline(), aber es ist ein bisschen größeres Wort.Wie verwendet man gets() in cpp

+4

Sie verwenden 'gets()' nirgendwo. Es ist nicht sicher. Es ist nicht länger ein Teil der C11-Standard-C-Bibliothek. Siehe [Warum die 'wird()' Funktion zu gefährlich verwendet werden - je] (https://stackoverflow.com/questions/1694036/why-is-the-gets-function-dangerous-why-should-it -nicht-benutzt-werden) –

+1

Nicht ise 'gets()', Punkt. Verwenden Sie stattdessen 'fgets', das ist eine sichere Funktion. Und wenn Sie C++ verwenden, dann verwenden Sie C++ - Methoden wie 'std :: cin' von' iostream'. – Pablo

+0

@ JonathanLeffler ohh! Ich wusste nicht, dass Thnx für ur Hilfe – CIPHER

Antwort

0

std::cin.get(); ist etwas, was sie in Anfängerklassen unterrichten, hoffentlich ist dies das kleinere Wort für getline, auf das Sie gehofft hatten! :)

in Zukunft ein Programm wie Visual Studio verwenden, die IntelliSense hat und Möglichkeiten für Sie auflisten kann - oder schauen Sie in der Dokumentation.

Die beste Methode wäre wahrscheinlich etwas in dieser Richtung sein:

std::cout << "Input a string: "; 
std::string strInput; 
std::cin >> strInput; 
std::cout << std::endl << "Your string: " << strInput << std::endl; 

Viel Glück!

+0

Thnx @j lesen. Doe cin.get perfekt Thnx für ur Wünsche – CIPHER

-1

SEE, 'cin' wird verwendet, um grundsätzlich jede Eingabe eines beliebigen Datentyps zu übernehmen. ABER. Wenn Sie eine Zeichenkette mit cin eingeben, wird angenommen, daß die Zeichenkette endet, nachdem Sie das Leerzeichen eingegeben haben. Wenn du also 'Hello world' eingibst, wird nur 'Hello' angezeigt. Wenn Sie gets() verwenden, enthält es auch Leerzeichen in Ihrem Eingang. Syntax: gets (Stringname); Vergessen Sie nicht, für die Header-Datei

+0

'cin' ist ein Eingangsstrom und hat wenig mit dem zu tun, wie Sie Daten aus dem Stream lesen. Was in der obigen Antwort beschrieben ist, ist das Verhalten des Operators '>>'.Die "getline" -Methode des Streams ist möglicherweise besser für "gets" geeignet, aber wenn Sie C++ verwenden, verwenden Sie 'std :: string' und' 'std :: getline', es sei denn, Sie sind gezwungen, einige unglückliche Umstände zu vermeiden. – user4581301

1
cin.get() 

ist das, was Sie suchen zu schließen. Ich empfehle jedoch, cin zu verwenden, da dies ausreicht, um cin >> zu verwenden. Diese cin>> kann auch die Eingabe von Zahlen, Zeichen verwendet werden, Strings usw.

gets() and puts() 

werden in Code Golf häufig verwendet, obwohl sie die gleiche Funktion wie cin>> und cout<< dienen. Ich hoffe, dieser Beitrag hilft!

Verwandte Themen