Функция getline в C++: считывание символьных строк с помощью стандартного ввода
Функция getline() является стандартной функцией в языке программирования C и используется для чтения строки из входного потока (например, из файла или стандартного ввода). Она определена в заголовочном файле
Прототип функции:
ssize_t getline(char **lineptr, size_t *n, FILE *stream);
Параметры функции:
- **lineptr: указатель на указатель на буфер, в который будет записана строка. Если значение указателя на буфер равно NULL, то функция выделит память для буфера автоматически.
- **n: указатель на размер буфера. Если значение указателя на размер равно 0, то функция выделит память для буфера автоматически.
- *stream: указатель на файловый поток для чтения строки.
Функция возвращает количество прочитанных символов, включая символы новой строки в конце строки (если они есть). Если функция вернула -1, это означает, что произошла ошибка при чтении строки.
Пример использования функции:
c
#include
#include
int main(){
// открытие файла для чтения строки
FILE *file = fopen("text.txt", "r");
if(file == NULL){
printf("Ошибка при открытии файла!");
return -1;
}
// буфер для хранения строки
char *buffer = NULL;
// размер буфера
size_t size = 0;
// чтение строки из файла
int n = getline(&buffer, &size, file);
// проверка на ошибки при чтении строки
if(n == -1){
printf("Ошибка при чтении строки!\n");
return -1;
}
// вывод на экран прочитанной строки
printf("Прочитанная строка: %s\n", buffer);
// освобождение памяти, выделенной под буфер
free(buffer);
// закрытие файла
fclose(file);
return 0;
}
В данном примере происходит открытие файла "text.txt" для чтения строки. Затем выделяется память под буфер и размер буфера. Функция getline() читает первую строку из файла, записывает ее в буфер, и возвращает количество прочитанных символов. Если произошла ошибка при чтении строки (например, если файл пустой), то функция вернет -1.
Затем прочитанная строка выводится на экран с помощью функции printf(). Память, выделенная под буфер, освобождается с помощью функции free(). И, наконец, файл закрывается с помощью функции fclose().
Таким образом, функция getline() позволяет читать строки из файлового потока в языке C. Ее использование может быть полезно, например, при создании консольных приложений или при работе с текстовыми файлами.