logo

getline (string) w C++

Język C++ getline() to standardowa funkcja biblioteczna używana do odczytu ciągu znaków lub linii ze strumienia wejściowego. Jest częścią nagłówek . Funkcja getline() wyodrębnia znaki ze strumienia wejściowego i dołącza je do obiektu string do momentu napotkania znaku ograniczającego. Robiąc to, poprzednio zapisana wartość w obiekcie string ul zostanie zastąpiony ciągiem wejściowym, jeśli taki istnieje.
Funkcję getline() można przedstawić na dwa sposoby:

Składnia:

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

2. Parametry:



  • Jest: Jest obiektem klasy istream i informuje funkcję o strumieniu, z którego ma odczytać dane wejściowe.
  • str: Jest to obiekt typu string, w tym obiekcie zapisywane są dane wejściowe po odczytaniu ze strumienia.
  • udział: Jest to znak ograniczający, który informuje funkcję, aby po osiągnięciu tego znaku przestała czytać dalsze dane wejściowe.

Przykład: Aby zademonstrować użycie ogranicznika w getline() funkcjonować.

: w Javie

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

>

>

Wyjście:

Wyjście

Notatka: W powyższym przykładzie, jeśli #zdefiniuj MAX_NAME_LEN 6, Zatem w tym przypadku, jeśli przekroczysz zdefiniowany limit , w tym przypadku, Twój program zatrzyma wykonywanie i zakończy działanie odpowiedni dla każdego makra użytego z funkcją getline(). I zrobisz to Dostawać the wyjście jak poniżej:

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

>

>

scalanie sortowania Java

Wyjście:

Wyjście_2

Tutaj zrozumiałe jest, że długość pola nazwy była większa niż zdefiniowany limit, dlatego program zatrzymuje wykonywanie i kończy działanie.

1. Składnia:

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

2. Druga deklaracja jest prawie taka sama jak pierwsza. Jedyna różnica polega na tym, że te ostatnie mają znak ograniczający, który jest domyślnie znakiem nowej linii ( ).
Parametry:

  • Jest: Jest obiektem klasy istream i informuje funkcję o strumieniu, z którego ma odczytać dane wejściowe.
  • str: Jest to obiekt typu string, w tym obiekcie zapisywane są dane wejściowe po odczytaniu ze strumienia.

Poniższy program demonstruje działanie funkcji getline().
Przykład 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;> }>

>

programy w Javie
>

Wejście:

Harsh Agarwal>

Wyjście:

Hello, Harsh Agarwal welcome to GfG!>

Przykład 2: Możemy użyć funkcji getline(), aby podzielić zdanie na podstawie znaku. Spójrzmy na przykład, aby zrozumieć, jak można to zrobić.

CPP




programowanie stdin c
// 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;> }>

>

>

Wejście:

Hello, Faisal Al Mamun. Welcome to GfG!>

Wyjście:

Hello, Faisal Al Mamun. Welcome to GfG!>

Ostrożność : Ta funkcja traktuje znak nowej linii lub znak („ ”) jako znak rozgraniczenia i Znak nowego wiersza jest prawidłowym wejściem dla tej funkcji.
Przykład tego, jak nowa linia może powodować problemy, podano poniżej:
Przykład:

CPP




oprogramowanie systemowe

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

>

>

Wejście:

7 MOHIT KUMAR>

Wyjście:

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

Powiązane artykuły:

  • Jak używać getline() w C++, gdy na wejściu znajdują się puste linie?
  • funkcja getline() i tablica znaków

Jeśli podoba Ci się techcodeview.com i chciałbyś wnieść swój wkład, możesz także napisać artykuł za pomocą lub wyślij swój artykuł na adres [email protected]
Napisz komentarz, jeśli znajdziesz coś nieprawidłowego lub chcesz podzielić się więcej informacjami na temat omówiony powyżej.