logo

getline (Zeichenfolge) in C++

Das C++ getline() ist eine Standardbibliotheksfunktion, die zum Lesen einer Zeichenfolge oder Zeile aus einem Eingabestream verwendet wird. Es ist ein Teil davon Header . Die Funktion getline() extrahiert Zeichen aus dem Eingabestream und hängt sie an das String-Objekt an, bis das Trennzeichen gefunden wird. Dabei wird der zuvor im String-Objekt gespeicherte Wert angezeigt str wird ggf. durch die Eingabezeichenfolge ersetzt.
Die Funktion getline() kann auf zwei Arten dargestellt werden:

Syntax:

istream& getline(istream& is,   string& str, char delim);>

2. Parameter:



  • Ist: Es ist ein Objekt der istream-Klasse und teilt der Funktion mit, aus welchem ​​Stream die Eingabe gelesen werden soll.
  • str: Es handelt sich um ein String-Objekt. Die Eingabe wird in diesem Objekt gespeichert, nachdem sie aus dem Stream gelesen wurde.
  • Aktie: Es ist das Trennzeichen, das die Funktion anweist, das Lesen weiterer Eingaben nach Erreichen dieses Zeichens zu stoppen.

Beispiel: Um die Verwendung von Trennzeichen im zu demonstrieren getline() Funktion.

C++


Warteschlange und Prioritätswarteschlange in Java



#include> #include> using> namespace> std;> //macro definitions> #define MAX_NAME_LEN 60 // Maximum len of your name can't be more than 60> #define MAX_ADDRESS_LEN 120 // Maximum len of your address can't be more than 120> #define MAX_ABOUT_LEN 250 // Maximum len of your profession can't be more than 250> int> main () {> >char> y_name[MAX_NAME_LEN], y_address[MAX_ADDRESS_LEN], about_y[MAX_ABOUT_LEN];> >cout <<>'Enter your name: '>;> >cin.getline (y_name, MAX_NAME_LEN);> >cout <<>'Enter your City: '>;> >cin.getline (y_address, MAX_ADDRESS_LEN);> >cout <<>'Enter your profession (press $ to complete): '>;> >cin.getline (about_y, MAX_ABOUT_LEN,>'$'>);>//$ is a delimiter> >cout <<>' Entered details are: '><<>' '>;> >cout <<>'Name: '> << y_name << endl;> >cout <<>'Address: '> << y_address << endl;> >cout <<>'Profession is: '> << about_y << endl;> }>

>

>

Ausgabe:

Ausgabe

Notiz: Im obigen Beispiel, wenn die #define MAX_NAME_LEN 6, In diesem Fall also, wenn Sie den definierten Grenzwert überschreiten , in diesem Fall, Ihr Programm stoppt die Ausführung und beendet es anwendbar für jedes Makro, das Sie mit der Funktion getline() verwendet haben. Und das wirst du erhalten Die Ausgabe wie folgt:

C++




#include> #include> using> namespace> std;> //macro definitions> #define MAX_NAME_LEN 6 // Maximum length of your name can't be more than 6> #define MAX_ADDRESS_LEN 120 // Maximum length of your address can't be more than 120> #define MAX_ABOUT_LEN 250 // Maximum length of your profession can't be more than 250> int> main () {> >char> y_name[MAX_NAME_LEN], y_address[MAX_ADDRESS_LEN], about_y[MAX_ABOUT_LEN];> >cout <<>'Enter your name: '>;> >cin.getline (y_name, MAX_NAME_LEN);> >cout <<>'Enter your City: '>;> >cin.getline (y_address, MAX_ADDRESS_LEN);> >cout <<>'Enter your profession (press $ to complete): '>;> >cin.getline (about_y, MAX_ABOUT_LEN,>'$'>);>//$ is a delimiter> >cout <<>' Entered details are: '>;> >cout <<>'Name: '> << y_name << endl;> >cout <<>'Address: '> << y_address << endl;> >cout <<>'Profession is: '> << about_y << endl;> }>

tun, während Java
>

>

Ausgabe:

Ausgabe_2

Hier ist es verständlich, dass die Länge des Namensfelds den definierten Grenzwert überschritten hat, weshalb das Programm die Ausführung stoppt und beendet wird.

1. Syntax:

istream& getline (istream& is, string& str);>

2. Die zweite Erklärung ist fast dieselbe wie die erste. Der einzige Unterschied besteht darin, dass letztere ein Trennzeichen haben, das standardmäßig ein Zeilenumbruchzeichen ( ) ist.
Parameter:

  • Ist: Es ist ein Objekt der istream-Klasse und teilt der Funktion mit, aus welchem ​​Stream die Eingabe gelesen werden soll.
  • str: Es handelt sich um ein String-Objekt. Die Eingabe wird in diesem Objekt gespeichert, nachdem sie aus dem Stream gelesen wurde.

Das folgende Programm demonstriert die Funktionsweise der Funktion getline()
Beispiel 1:

CPP




// C++ program to demonstrate getline() function> #include> #include> using> namespace> std;> int> main()> {> >string str;> >cout <<>'Please enter your name: '>;> >getline(cin, str);> >cout <<>'Hello, '> << str> ><<>' welcome to GfG ! '>;> >return> 0;> }>

>

>

Eingang:

Harsh Agarwal>

Ausgabe:

Hello, Harsh Agarwal welcome to GfG!>

Beispiel 2: Mit der Funktion getline() können wir einen Satz anhand eines Zeichens aufteilen. Schauen wir uns ein Beispiel an, um zu verstehen, wie es gemacht werden kann.

CPP




// C++ program to understand the use of getline() function> #include> using> namespace> std;> int> main()> {> >string S, T;> >getline(cin, S);> >stringstream X(S);> >while> (getline(X, T,>' '>)) {> >cout << T << endl;> >}> >return> 0;> }>

Arraylist-Java-Sortierung
>

>

Eingang:

Hello, Faisal Al Mamun. Welcome to GfG!>

Ausgabe:

Hello, Faisal Al Mamun. Welcome to GfG!>

Vorsicht : Diese Funktion betrachtet eine neue Zeile oder ein Zeichen („ “) als Trennzeichen und Das neue Zeilenzeichen ist eine gültige Eingabe für diese Funktion.
Nachfolgend finden Sie ein Beispiel dafür, wie eine neue Leitung Probleme verursachen kann:
Beispiel:

CPP

Array in Java




// C++ program to demonstrate> // anomaly of delimitation of> // getline() function> #include> #include> using> namespace> std;> int> main()> {> >string name;> >int> id;> >// Taking id as input> >cout <<>'Please enter your id: '>;> >cin>> id;> >// Takes the empty character as input> >cout <<>'Please enter your name: '>;> >getline(cin, name);> >// Prints id> >cout <<>'Your id : '> << id <<>' '>;> >// Prints nothing in name field> >// as ' ' is considered a valid string> >cout <<>'Hello, '> << name> ><<>' welcome to GfG ! '>;> >// Again Taking string as input> >getline(cin, name);> >// This actually prints the name> >cout <<>'Hello, '> << name> ><<>' welcome to GfG ! '>;> >return> 0;> }>

>

>

Eingang:

7 MOHIT KUMAR>

Ausgabe:

Your id : 7 Hello, welcome to GfG ! Hello, MOHIT KUMAR welcome to GfG !>

In Verbindung stehende Artikel:

  • Wie verwende ich getline() in C++, wenn die Eingabe Leerzeilen enthält?
  • getline()-Funktion und Zeichenarray

Wenn Ihnen techcodeview.com gefällt und Sie einen Beitrag leisten möchten, können Sie auch einen Artikel über schreiben oder senden Sie Ihren Artikel per E-Mail an [email protected]
Bitte schreiben Sie Kommentare, wenn Sie etwas Falsches finden oder weitere Informationen zu dem oben besprochenen Thema mitteilen möchten.