getline (рядок) у C++

getline (рядок) у C++

C++ getline() це стандартна функція бібліотеки, яка використовується для читання рядка або рядка з вхідного потоку. Це частина заголовок . Функція getline() витягує символи з вхідного потоку та додає їх до рядкового об’єкта, доки не зустрінеться символ-розмежувач. При цьому попередньо збережене значення в рядковому об’єкті вул буде замінено вхідним рядком, якщо такий є.
Функцію getline() можна представити двома способами:

Синтаксис:

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

2. Параметри:

  • це: Це об’єкт класу istream і повідомляє функції про потік, звідки читати вхідні дані.
  • str: Це рядковий об’єкт, вхідні дані зберігаються в цьому об’єкті після зчитування з потоку.
  • поділитися: Це символ розмежування, який повідомляє функції припинити читання подальшого введення після досягнення цього символу.

приклад: Щоб продемонструвати використання роздільника в getline() функція.

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

Вихід:

Вихід

Примітка: У наведеному вище прикладі, якщо #define MAX_NAME_LEN 6, Тож у цьому випадку, якщо ви перетнете визначену межу , в цьому випадку, ваша програма припинить виконання та вийде з неї застосовно для кожного макросу, який ви використовували з функцією getline(). І ви будете отримати в вихід, як показано нижче:

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

Вихід:

Вихід_2-й

Тут зрозуміло, що довжина поля імені була більшою за визначений ліміт, тому програма припиняє виконання та виходить.

1. Синтаксис:

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

2. Друга декларація майже така ж, як і перша. Єдина відмінність полягає в тому, що останні мають символ розмежування, який за замовчуванням є символом нового рядка ( ).
Параметри:

  • це: Це об’єкт класу istream і повідомляє функції про потік, звідки читати вхідні дані.
  • str: Це рядковий об’єкт, вхідні дані зберігаються в цьому об’єкті після зчитування з потоку.

Програма нижче демонструє роботу функції getline().
приклад 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;> }>

введення:

Harsh Agarwal 

Вихід:

Hello, Harsh Agarwal welcome to GfG! 

приклад 2: Ми можемо використовувати функцію getline(), щоб розділити речення на основі символу. Давайте розглянемо приклад, щоб зрозуміти, як це можна зробити.

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

введення:

Hello, Faisal Al Mamun. Welcome to GfG! 

Вихід:

Hello, Faisal Al Mamun. Welcome to GfG! 

Увага: Ця функція розглядає новий рядок або символ (‘ ’) як символ розмежування та Символ нового рядка є дійсним введенням для цієї функції.
Нижче наведено приклад того, як новий рядок може спричинити проблему:
приклад:

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

введення:

7 MOHIT KUMAR 

Вихід:

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

Схожі статті:

  • Як використовувати getline() у C++, якщо у вхідних даних є порожні рядки?
  • функція getline() і масив символів

Якщо вам подобається techcodeview.com і ви хочете зробити внесок, ви також можете написати статтю за допомогою або надішліть свою статтю на адресу [email protected]
Будь ласка, пишіть коментарі, якщо ви знайшли щось невірне, або ви хочете поділитися додатковою інформацією про тему, розглянуту вище.



Кращі Статті

Категорія