C++ getline() on standardikirjastofunktio, jota käytetään lukemaan merkkijono tai rivi syöttövirrasta. Se on osa otsikko . Getline()-funktio poimii merkit syöttövirrasta ja lisää sen merkkijonoobjektiin, kunnes rajaava merkki löytyy. Tällöin merkkijonoobjektiin aiemmin tallennettu arvo str korvataan syötemerkkijonolla, jos sellainen on.
Getline()-funktio voidaan esittää kahdella tavalla:
Syntaksi:
istream& getline(istream& is, string& str, char delim);>
2. Parametrit:
- On: Se on istream-luokan objekti ja kertoo virran funktiolle, mistä syöte luetaan.
- str: Se on merkkijonoobjekti, syöte tallennetaan tähän objektiin, kun se on luettu virrasta.
- Jaa: Se on rajausmerkki, joka käskee funktiota lopettamaan lisäsyötteen lukemisen tämän merkin saavuttamisen jälkeen.
Esimerkki: Havainnollistaa erottimen käyttöä getline() toiminto.
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;> }> |
>
>
10 ml on kuinka paljon
Lähtö:

Lähtö
Huomautus: Yllä olevassa esimerkissä, jos #define MAX_NAME_LEN 6, Joten tässä tapauksessa jos ylität määritellyn rajan , tässä tapauksessa, ohjelmasi lopettaa suorituksen ja lopettaa sen sovellettavissa jokaiselle makrolle, jota olet käyttänyt getline()-funktion kanssa. Ja sinä tulet saada the tulostus alla:
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;> }> |
>
>
Lähtö:

Output_2nd
Tässä on ymmärrettävää, että nimikentän pituus ylitti määritellyn rajan, minkä vuoksi ohjelma pysäyttää suorituksen ja poistuu.
1. Syntaksi:
istream& getline (istream& is, string& str);>
2. Toinen ilmoitus on lähes sama kuin ensimmäinen. Ainoa ero on, että jälkimmäisissä on rajausmerkki, joka on oletusarvoisesti rivinvaihtomerkki (
).
Parametrit:
- On: Se on istream-luokan objekti ja kertoo virran funktiolle, mistä syöte luetaan.
- str: Se on merkkijonoobjekti, syöte tallennetaan tähän objektiin, kun se on luettu virrasta.
Alla oleva ohjelma näyttää getline()-funktion toiminnan
Esimerkki 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;> }> |
>
>
Syöte:
Harsh Agarwal>
Lähtö:
Wordin pikatyökalurivi
Hello, Harsh Agarwal welcome to GfG!>
Esimerkki 2: Voimme käyttää getline()-funktiota lauseen jakamiseen merkin perusteella. Katsotaanpa esimerkkiä ymmärtääksemme, kuinka se voidaan tehdä.
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;> }> |
>
>
Syöte:
Hello, Faisal Al Mamun. Welcome to GfG!>
Lähtö:
Hello, Faisal Al Mamun. Welcome to GfG!>
Varoitus: Tämä toiminto pitää uuden rivin tai ('
') merkin rajausmerkkinä ja uusi rivimerkki on kelvollinen syöte tälle funktiolle.
Alla on esimerkki siitä, kuinka uusi rivi voi aiheuttaa ongelmia:
Esimerkki:
CPP
azure-tilaus
// 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;> }> |
>
>
Syöte:
7 MOHIT KUMAR>
Lähtö:
Your id : 7 Hello, welcome to GfG ! Hello, MOHIT KUMAR welcome to GfG !>
Aiheeseen liittyvät artikkelit:
- Kuinka käyttää getline():tä C++:ssa, kun syötteessä on tyhjiä rivejä?
- getline()-funktio ja merkkijono
Jos pidät techcodeview.comsta ja haluat osallistua, voit myös kirjoittaa artikkelin käyttämällä tai lähetä artikkelisi osoitteeseen [email protected]
Kirjoita kommentteja, jos huomaat jotain väärin tai haluat jakaa lisätietoja yllä käsitellystä aiheesta.