как считать весь текст из файла в 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;
}