C++ getline() ir standarta bibliotēkas funkcija, ko izmanto, lai nolasītu virkni vai rindiņu no ievades straumes. Tā ir daļa no galvene . Funkcija getline() izvelk rakstzīmes no ievades straumes un pievieno to virknes objektam, līdz tiek atrasta norobežojošā rakstzīme. To darot, virknes objektā iepriekš saglabātā vērtība str tiks aizstāts ar ievades virkni, ja tāda ir.
Funkciju getline () var attēlot divos veidos:
Sintakse:
istream& getline(istream& is, string& str, char delim);>
2. Parametri:
- ir: Tas ir istream klases objekts un norāda funkciju par straumi, no kurienes nolasīt ievadi.
- str: Tas ir virknes objekts, ievade tiek saglabāta šajā objektā pēc nolasīšanas no straumes.
- dalīties: Tā ir norobežojošā rakstzīme, kas norāda funkcijai pārtraukt turpmākās ievades lasīšanu pēc šīs rakstzīmes sasniegšanas.
Piemērs: Lai demonstrētu norobežotāja lietojumu getline() funkciju.
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;> }> |
>
seriāls postgres
>
Izvade:

Izvade
Piezīme: Iepriekš minētajā piemērā, ja #define MAX_NAME_LEN 6, Tātad šajā gadījumā, ja jūs pārkāpjat noteikto robežu, tad , šajā gadījumā, jūsu programma pārtrauks izpildi un izies no tās piemērojami katram makro, ko izmantojāt ar funkciju getline(). Un jūs to darīsit gūt uz izvade, kā norādīts zemāk:
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;> }> |
>
>
Izvade:

Izvade_2
Šeit ir saprotams, ka nosaukuma lauka garums pārsniedz noteikto ierobežojumu, tāpēc programma pārtrauc izpildi un iziet.
vilks vs lapsa
1. Sintakse:
istream& getline (istream& is, string& str);>
2. Otrā deklarācija ir gandrīz tāda pati kā pirmajā. Vienīgā atšķirība ir tā, ka pēdējiem ir norobežojoša rakstzīme, kas pēc noklusējuma ir jaunas rindiņas (
) rakstzīme.
Parametri:
- ir: Tas ir istream klases objekts un norāda funkciju par straumi, no kurienes nolasīt ievadi.
- str: Tas ir virknes objekts, ievade tiek saglabāta šajā objektā pēc nolasīšanas no straumes.
Zemāk programma parāda getline() funkcijas darbību
1. piemērs:
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;> }> |
>
>
Ievade:
Harsh Agarwal>
Izvade:
Hello, Harsh Agarwal welcome to GfG!>
2. piemērs: Mēs varam izmantot funkciju getline(), lai sadalītu teikumu, pamatojoties uz rakstzīmi. Apskatīsim piemēru, lai saprastu, kā to var izdarīt.
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;> }> |
>
>
Ievade:
Hello, Faisal Al Mamun. Welcome to GfG!>
Izvade:
Hello, Faisal Al Mamun. Welcome to GfG!>
Uzmanību: Šī funkcija uzskata jaunu rindu vai ('
') rakstzīmi par norobežojošo rakstzīmi un šai funkcijai ir derīga jaunā rindas rakstzīme.
Tālāk ir sniegts piemērs tam, kā jauna līnija var radīt problēmas:
Piemērs:
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;> }> |
>
>
Ievade:
7 MOHIT KUMAR>
Izvade:
java virkne salīdzināt
Your id : 7 Hello, welcome to GfG ! Hello, MOHIT KUMAR welcome to GfG !>
Saistītie raksti:
- Kā lietot getline () programmā C++, ja ievadē ir tukšas rindas?
- getline() funkcija un rakstzīmju masīvs
Ja jums patīk techcodeview.com un vēlaties sniegt savu ieguldījumu, varat arī uzrakstīt rakstu, izmantojot vai nosūtiet savu rakstu uz [email protected]
Lūdzu, rakstiet komentārus, ja atrodat kaut ko nepareizu vai vēlaties dalīties ar plašāku informāciju par iepriekš apspriesto tēmu.