У меня есть задание сохранять данные некоторых объектов в определенном порядке их элементов данных, я постараюсь упростить.Рассмотрим этот конструктор базового класса из двоичного файла.(Обратите внимание, что я не выбрал использовать char *).
Base(ifstream & in_file) {
int n;
in_file.read((char *)&n, sizeof(n));
m_var = new char[n + 1];
in_file.read(m_var, n);
m_var[n] = '\0';
in_file.read((char *)&m_intvar, sizeof(m_intvar));
}
Он должен инициализировать m_var (char *) и другую целочисленную переменную.Этот код работает, хотя он запрашивает , чтобы сохранить длину символа * для меня, чтобы выделить память.
Проблема начинается здесь.Мне было поручено не сохранять размер строки, а вводить \n
после каждого значения, которое я записываю в файл.Поэтому мне нужно как-то прочитать файл и получить строку до символа \n
.
Я думал о чтении char по char, но не смог найти способ сделать это, я предполагаю, что есть функция istream, которая предлагает это.Я полагаю, что некоторые функции, аналогичные >>
текстового файла, также подойдут.