Я пытаюсь прочитать из двоичного файла, используя fstream, некоторые данные, которые я ранее записал туда.
Проблема в том, что после достижения конца функции показывается сообщение в теме
Код следующий:
ifstream in("contrib.bin", ios::in | ios::binary );
char *nume, dim;
in.read((char*)&dim, sizeof(int));
nume = new char[dim + 1];
in.read(nume, dim);
nume[dim] = '\0';
double imp;
in.read((char*)&imp, sizeof(double));
delete [] nume;
Итак, я сделал свою домашнюю работу и искал эту проблему, но у других людей, которые сталкивались с ней, были массивы, тогда как моя переменная — это простой символ.
Может кто-нибудь указать мне правильное направление, пожалуйста?
new
иdelete
используйтеstd::vector
илиstd::string
, в зависимости от того, как вы собираетесь использовать данные. Чтобы передать указатель на первый байт вектора или строкиv
, используйте&v[0]
. Однако обратите внимание, что в отличие от текущего кода это UB для размера 0, поэтому вам нужно проверить размер 0 (если это может произойти). - person Cheers and hth. - Alf   schedule 11.01.2013