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.