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

      char *t = new char;
      ifstream fin("in.txt");

учитывая пробелы


Ответы (1 шт):

Автор решения: LShadow77

Как-то так:

#include <fstream>

using namespace std;


int main()
{
    ifstream fin("in.txt",ios_base::in|ios_base::binary);
    if (!fin.good()) return 1;

    fin.seekg(0,ios_base::end);
    size_t uSize = fin.tellg();
    fin.seekg(0);

    char* t = new char[uSize+1];
    fin.read(t,uSize);
    t[uSize] = 0;

    puts(t);

    delete[] t;
    return 0;
}

Второй вариант, для тестовых файлов более приемлемый:

#include <fstream>

using namespace std;


int main()
{
    ifstream fin("in.txt");  //теперь файл открываем как текстовый
    if (!fin.good()) return 1;

    fin.seekg(0,ios_base::end);
    size_t uSize = fin.tellg();
    fin.seekg(0);

    char* t = new char[uSize+1];
    fin.read(t,uSize);
    t[fin.gcount()] = 0;  //реальная длина строки может быть меньше размера файла

    puts(t);

    delete[] t;
    return 0;
}
→ Ссылка