C++ getline() er en standard bibliotekfunksjon som brukes til å lese en streng eller en linje fra en inngangsstrøm. Det er en del av Overskrift . Getline()-funksjonen trekker ut tegn fra inndatastrømmen og legger den til strengobjektet inntil avgrensningstegnet blir påtruffet. Mens du gjør det, den tidligere lagrede verdien i strengobjektet str erstattes av inndatastrengen hvis noen.
Getline()-funksjonen kan representeres på to måter:
Syntaks:
istream& getline(istream& is, string& str, char delim);>
2. Parametre:
- er: Det er et objekt av istream-klassen og forteller funksjonen om strømmen fra hvor du skal lese inndataene.
- str: Det er et strengobjekt, inndata lagres i dette objektet etter å ha blitt lest fra strømmen.
- dele: Det er avgrensningstegnet som forteller funksjonen å slutte å lese ytterligere inndata etter å ha nådd dette tegnet.
Eksempel: For å demonstrere bruken av skilletegn i getline() funksjon.
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;> }> |
>
>
Produksjon:

Produksjon
Merk: I eksemplet ovenfor hvis #define MAX_NAME_LEN 6, Så i dette tilfellet hvis du krysser den definerte grensen da , i dette tilfellet, programmet vil stoppe kjøringen og avslutte det aktuelt for hver makro du har brukt med getline()-funksjonen. Og du vil få de utgang 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;> }> |
>
>
Produksjon:

Output_2nd
Her er det forståelig at lengden på navnefeltet var mer enn den definerte grensen, det er grunnen til at programmet stopper kjøringen og avslutter.
1. Syntaks:
istream& getline (istream& is, string& str);>
2. Den andre erklæringen er nesten den samme som den første. Den eneste forskjellen er at sistnevnte har et avgrensningstegn som er som standard newline(
)-tegn.
Parametere:
- er: Det er et objekt av istream-klassen og forteller funksjonen om strømmen fra hvor du skal lese inndataene.
- str: Det er et strengobjekt, inndata lagres i dette objektet etter å ha blitt lest fra strømmen.
Programmet nedenfor viser hvordan getline()-funksjonen fungerer
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 tuppel
>
>
Inndata:
Harsh Agarwal>
Produksjon:
Hello, Harsh Agarwal welcome to GfG!>
Eksempel 2: Vi kan bruke funksjonen getline() til å dele en setning på grunnlag av et tegn. La oss se på et eksempel for å forstå hvordan det kan gjø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;> }> |
>
>
Inndata:
Hello, Faisal Al Mamun. Welcome to GfG!>
Produksjon:
Hello, Faisal Al Mamun. Welcome to GfG!>
Forsiktig: Denne funksjonen vurderer en ny linje eller ('
') tegn som avgrensningstegnet og nytt linjetegn er gyldig inndata for denne funksjonen.
Eksempel på hvordan ny linje kan forårsake problemer er gitt 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;> }> |
>
>
Inndata:
7 MOHIT KUMAR>
Produksjon:
Your id : 7 Hello, welcome to GfG ! Hello, MOHIT KUMAR welcome to GfG !>
Relaterte artikler:
- Hvordan bruke getline() i C++ når det er tomme linjer i input?
- getline() funksjon og tegnarray
Hvis du liker techcodeview.com og ønsker å bidra, kan du også skrive en artikkel ved hjelp av eller send artikkelen din til [email protected]
Vennligst skriv kommentarer hvis du finner noe feil, eller du vil dele mer informasjon om emnet diskutert ovenfor.