Мне очень тяжело писать в двоичный файл и читать. Я в основном пишу запись этого форматаifstream/ofstream проблема с C++?
1234|ABCD|efgh|IJKL|ABC
Прежде чем писать эту запись, я написал бы длину всей этой записи (using string.size())
, а затем я пишу запись в двоичный файл, используя ofstream
следующим образом:
ИНТ размер;
ofstream studentfile;
studentfile.open(filename.c_str(),ios::out|ios::binary);
studentfile.write((char*)&size,sizeof(int));
studentfile.write(data.c_str(),(data.size()*(sizeof(char))));
cout << "Added " << data << " to " << filename << endl;
studentfile.close();
И я прочитал эту информацию на каком-то другом месте
ifstream ifile11;
int x;
std::string y;
ifile11.open("student.db", ios::in |ios::binary);
ifile11.read((char*)&x,sizeof(int));
ifile11.read((char*)&y,x);
cout << "X " << x << " Y " << y << endl;
Сначала я прочитал длину записи в переменной x, а затем прочитал запись в строке y. Проблема заключается в том, что на выходе отображается x как «0», а «y» пуст.
Я не умею это понять. Тот, кто может изучить эту проблему и дать некоторое представление, будет очень благодарен.
Спасибо
Не могли бы вы рассказать подробнее? Спасибо –
@SasankaPanguluri Обновленный ответ. –
Не повезло :(Все еще дает «0» и пустую строку .. –