Использование функции getline для чтения строки в языке C с использованием C-строк
Функция getline() в C++ используется для чтения строки из входного потока и сохранения ее в строковой переменной типа С-string (char[]). Она предоставляет удобный и безопасный способ для чтения строк, особенно тех, которые могут содержать символы пробела или пустую строку.
Пример использования функции getline():
c++
#include
#include
int main()
{
char str[100];
std::cout << "Введите строку: ";
std::cin.getline(str, sizeof(str)); // чтение строки с пробелами
std::cout << "Введенная строка: " << str << std::endl;
return 0;
}
В этом примере мы используем функцию getline(), чтобы прочитать строку, введенную пользователем, и сохранить ее в массиве символов str. Второй аргумент функции getline() - sizeof(str) - указывает на размер буфера, в котором будет храниться введенная строка. Это предотвращает превышение размера буфера, что может привести к ошибкам выполнения программы.
Если ввод будет содержать пробелы или пустую строку, функция getline() все равно корректно прочитает и запишет эту строку в переменную str. Это отличается от других методов ввода, таких как std::cin >> str, которые считывают строку только до первого пробела.
Кроме того, функция getline() также предоставляет возможность частичного чтения строки из входного потока, например, до указанного символа разделителя. Вот пример:
c++
#include
#include
int main()
{
char str[100];
std::cout << "Введите строку: ";
std::cin.getline(str, sizeof(str), ','); // чтение строки до символа ','
std::cout << "Введенная строка: " << str << std::endl;
return 0;
}
В этом примере мы используем третий аргумент getline() - разделитель знака ' , '. Функция getline() будет читать ввод, пока не встретит этот символ или не достигнет конца строки. В результате, в переменной str будет сохранена только часть строки, считанная до символа ' , '.
Таким образом, функция getline() является очень полезным инструментом для ввода и обработки строк в C++. Она позволяет сохранять строку целиком, включая символы пробела и пустую строку, а также обеспечивает возможность частичного чтения до заданного разделителя.