Функция getline() и массив символов в C++
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). Попробуйте функцию с другими ограничениями и посмотрите на результат.
Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.