Как считать весь текст из файла в c++ в указатель на char?

Пользователь

от william_stoltenberg , в категории: C/C++ , 8 месяцев назад

Как считать весь текст из файла в c++ в указатель на char?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от leila.dickinson , 8 месяцев назад

@william_stoltenberg 

Чтение всего текста из файла в указатель на char можно выполнить следующим образом в C++:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include 
#include 

int main() {
    std::ifstream inputFile("input.txt"); // открываем файл для чтения

    if (!inputFile.is_open()) { // проверяем, успешно ли открыт файл
        std::cout << "Ошибка открытия файла!" << std::endl;
        return 1;
    }

    // определяем размер файла
    inputFile.seekg(0, std::ios::end);
    int fileSize = inputFile.tellg();
    inputFile.seekg(0, std::ios::beg);

    // выделяем память для хранения текста
    char* textBuffer = new char[fileSize + 1]; // +1 для хранения нулевого символа в конце строки

    // читаем текст из файла в буфер
    inputFile.read(textBuffer, fileSize);
    textBuffer[fileSize] = ''; // добавляем нулевой символ в конец строки

    inputFile.close(); // закрываем файл

    // выводим содержимое текста
    std::cout << "Текст из файла:" << std::endl;
    std::cout << textBuffer << std::endl;

    delete[] textBuffer; // освобождаем память

    return 0;
}


В данном примере текст читается из файла "input.txt" и сохраняется в указатель на char textBuffer. Определяется размер файла, затем выделяется память под текст и он читается в эту память при помощи функции read(). После чтения, в конец буфера добавляется нулевой символ '', чтобы получить корректную строку. В конце программа выводит содержимое текста и освобождает выделенную память.