logo

getline (eilutė) C++

C++ getline () yra standartinė bibliotekos funkcija, naudojama nuskaityti eilutę arba eilutę iš įvesties srauto. Tai dalis antraštę . Funkcija getline() ištraukia simbolius iš įvesties srauto ir prideda juos prie eilutės objekto, kol aptinkamas skiriamasis simbolis. Tai darydami anksčiau saugomos reikšmės eilutės objekte str bus pakeistas įvesties eilute, jei bus.
Funkcija getline() gali būti pavaizduota dviem būdais:

Sintaksė:

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

2. Parametrai:



  • yra: Tai yra „istream“ klasės objektas ir nurodo srauto funkciją, iš kur nuskaityti įvestį.
  • str: Tai yra eilutės objektas, įvestis išsaugoma šiame objekte, kai nuskaitoma iš srauto.
  • Dalintis: Tai yra atribojimo simbolis, kuris nurodo funkcijai nustoti skaityti tolesnę įvestį, kai pasiekia šį simbolį.

Pavyzdys: Norėdami parodyti skyriklio naudojimą getline () funkcija.

C++

„Apple“ emocijos „Android“.




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

>

>

Išvestis:

Išvestis

Pastaba: Aukščiau pateiktame pavyzdyje, jei #define MAX_NAME_LEN 6, Taigi šiuo atveju, jei peržengsite nustatytą ribą , tokiu atveju, jūsų programa sustabdys vykdymą ir išeis iš jos taikomi kiekvienai makrokomandai, kurią naudojote su getline() funkcija. Ir padarysi gauti į išvestis, kaip nurodyta toliau:

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

>

>

Išvestis:

Išėjimas_2nd

Čia suprantama, kad pavadinimo lauko ilgis buvo didesnis nei nustatyta riba, todėl programa sustabdo vykdymą ir išeina.

1. Sintaksė:

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

2. Antroji deklaracija beveik tokia pati kaip ir pirmoji. Vienintelis skirtumas yra tas, kad pastarieji turi atribojimo simbolį, kuris pagal numatytuosius nustatymus yra naujos eilutės ( ) simbolis.
Parametrai:

  • yra: Tai yra „istream“ klasės objektas ir nurodo srauto funkciją, iš kur nuskaityti įvestį.
  • str: Tai yra eilutės objektas, įvestis išsaugoma šiame objekte po to, kai nuskaitoma iš srauto.

Žemiau esanti programa demonstruoja funkcijos getline() veikimą
1 pavyzdys:

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

>

>

Įvestis:

Harsh Agarwal>

Išvestis:

Hello, Harsh Agarwal welcome to GfG!>

2 pavyzdys: Norėdami padalinti sakinį pagal simbolį, galime naudoti funkciją getline(). Pažvelkime į pavyzdį, kad suprastume, kaip tai galima padaryti.

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

>

>

Įvestis:

Hello, Faisal Al Mamun. Welcome to GfG!>

Išvestis:

Hello, Faisal Al Mamun. Welcome to GfG!>

Atsargiai: Ši funkcija laiko naują eilutę arba simbolį (' ') kaip atribojimo simbolį ir Naujas eilutės simbolis yra tinkamas šios funkcijos įvestis.
Toliau pateikiamas pavyzdys, kaip nauja eilutė gali sukelti problemų:
Pavyzdys:

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

>

>

Įvestis:

7 MOHIT KUMAR>

Išvestis:

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

Susiję straipsniai:

  • Kaip naudoti getline () programoje C++, kai įvestyje yra tuščių eilučių?
  • getline() funkcija ir simbolių masyvas

Jei jums patinka techcodeview.com ir norėtumėte prisidėti, taip pat galite parašyti straipsnį naudodami arba atsiųskite savo straipsnį adresu [email protected]
Rašykite komentaruose, jei radote ką nors neteisingo arba norite pasidalinti daugiau informacijos aukščiau aptarta tema.