logo

getline (streng) i C++

C++ getline() er en standard biblioteksfunktion, der bruges til at læse en streng eller en linje fra en inputstrøm. Det er en del af header . Getline()-funktionen udtrækker tegn fra inputstrømmen og føjer den til strengobjektet, indtil det afgrænsende tegn stødes på. Mens du gør det, den tidligere gemte værdi i strengobjektet str erstattes af inputstrengen, hvis nogen.
Getline()-funktionen kan repræsenteres på to måder:

Syntaks:

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

2. Parametre:



  • er: Det er et objekt i istream-klassen og fortæller funktionen om strømmen, hvorfra input skal læses.
  • str: Det er et strengobjekt, input gemmes i dette objekt efter at være blevet læst fra streamen.
  • del: Det er afgrænsningstegnet, der fortæller funktionen, at den skal stoppe med at læse yderligere input, efter at have nået dette tegn.

Eksempel: For at demonstrere brugen af ​​skilletegn i getline() fungere.

C++




#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;> }>

>

>

Produktion:

Produktion

Bemærk: I ovenstående eksempel, hvis #define MAX_NAME_LEN 6, Så i dette tilfælde, hvis du krydser den definerede grænse , I dette tilfælde, dit program vil stoppe eksekveringen og afslutte det gældende for hver makro, du har brugt med getline()-funktionen. Og det vil du det output som nedenfor:

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;> }>

>

>

Produktion:

Output_2

Her er det forståeligt, at længden af ​​navnefeltet var mere end den definerede grænse, hvorfor programmet stopper udførelse og afslutter.

1. Syntaks:

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

2. Den anden erklæring er næsten den samme som den første. Den eneste forskel er, at sidstnævnte har et afgrænsningstegn, som som standard er newline( )-tegn.
Parametre:

  • er: Det er et objekt i istream-klassen og fortæller funktionen om strømmen, hvorfra input skal læses.
  • str: Det er et strengobjekt, input gemmes i dette objekt efter at være blevet læst fra streamen.

Nedenstående program demonstrerer funktionen af ​​getline()-funktionen
Eksempel 1:

CPP

skriv json til filen python




// 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;> }>

java tilfældigt tal

>

>

Input:

Harsh Agarwal>

Produktion:

Hello, Harsh Agarwal welcome to GfG!>

Eksempel 2: Vi kan bruge funktionen getline() til at opdele en sætning på basis af et tegn. Lad os se på et eksempel for at forstå, hvordan det kan gøres.

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;> }>

>

>

Input:

Hello, Faisal Al Mamun. Welcome to GfG!>

Produktion:

Hello, Faisal Al Mamun. Welcome to GfG!>

Advarsel : Denne funktion betragter en ny linje eller (' ') tegn som afgrænsningstegnet og ny linjetegn er gyldig input til denne funktion.
Eksempel på hvordan ny linje kan forårsage problemer er givet nedenfor:
Eksempel:

CPP




// 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;> }>

>

>

Input:

7 MOHIT KUMAR>

Produktion:

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

Relaterede artikler:

  • Hvordan bruger man getline() i C++, når der er tomme linjer i input?
  • getline() funktion og tegnarray

Hvis du kan lide techcodeview.com og gerne vil bidrage, kan du også skrive en artikel vha eller send din artikel til [email protected]
Skriv venligst kommentarer, hvis du finder noget forkert, eller du vil dele flere oplysninger om emnet diskuteret ovenfor.