Функция getline() и массив символов в C++

Опубликовано: 15 Сентября, 2022

C++ getline() — это стандартная библиотечная функция, которая используется для чтения строки или строки из входного потока. Это часть заголовка <string>. Функция getline() извлекает символы из входного потока и добавляет их к строковому объекту до тех пор, пока не встретится символ-разделитель. Для получения более подробной информации необходимо прочитать статью getline(string) на C++.

В C++ потоковые классы поддерживают линейно-ориентированные функции, getline() и write() для выполнения функций ввода и вывода соответственно.

Getline Character Array: эта функция считывает всю строку текста, которая заканчивается новой строкой или до тех пор, пока не будет достигнут максимальный предел. getline() — это функция-член класса istream.

Синтаксис:

// (buffer, stream_size, delimiter)
istream& getline(char*, int size, char="
")

// The delimiter character is considered as "
"
istream& getline(char*, int size)

Параметры:

  • char*: указатель символа, указывающий на массив.
  • Размер: действует как разделитель, определяющий размер массива.

Функция выполняет следующие операции:

  • Извлекает символ до разделителя.
  • Сохраняет символы в буфере.
  • Максимальное количество извлекаемых символов равно size — 1.

Note: that the terminator(or delimiter) character can be any character (like ‘ ‘, ‘, ‘ or any special character, etc.). The terminator character is read but not saved into a buffer, instead it is replaced by the null character. 

Например:

Input: Aditya Rakhecha 

Выход

 Your Name is:: Aditya Rakhecha

Объяснение: В приведенной выше программе оператор cin.getline(str, 20); читает строку до тех пор, пока не встретит символ новой строки или максимальное количество символов (здесь 20). Попробуйте функцию с другими ограничениями и посмотрите на результат.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.