Мой код:ifstream() объекта Проблемы * полукокса
ifstream Reader ("commands.txt");
if(Reader.fail())
{
error("File \"commands.txt\" could not be found or opened.\n");
}
Reader.seekg(0, Reader.end);
int FSize = Reader.tellg();
if(FSize == 0)
{
cout << "File \"commands.txt\" is empty.\n";
return 0;
}
char * ContentsHold = {};
Reader.read(ContentsHold, FSize);
Reader.close();
string Contents(ContentsHold);
Идея заключается в том, что в конце, содержание должно быть C++ строка, которая держит все в commands.txt. Я получаю ошибку «basic_string :: _ S_construct null недействителен». Я не могу понять, что происходит не так. Помогите?
'char *' объявляет указатель, а не массив. Если вы инициализируете его с помощью '{}', это не приведет к созданию пустого массива, но будет инициализировать значение-указатель, который приводит к 'nullptr'. Почему бы вам не использовать 'vector' или 'string' вместо этого и прочитать его базовый буфер? –