Пустая структура была записана в файл, хочу знать, правильно ли я пишу структуру.
пустая структура была записана в файл, так как она дает пустые места, когда я пытаюсь отобразить ее содержимое.
Что я уже пробовал:
void writetickets()//second function called after the addcache func { string park1 = "Sign Sammoric/Tickets/"; park1 += to_string(dat.year()) + "/" + to_string(dat.month()) + "/" + to_string(dat.day()); if (!is_directory(park1.c_str()))//checks to see if the directory to write file to exists { if (create_directories(park1.c_str()))//create the directories { park1.append("/Tickets.dat"); ofstream file(park1.c_str(), ios::out | ios::app | ios::binary);//opens the file in binary mode materials t1; if (file.is_open())//checksto se if the file is opened before fany furthe operations { auto r = material.begin(); for (r = material.begin();r != material.end();r++)//iterates through the vector container { file.write((char *)&r, sizeof r); } file.close(); } } } else { park1 += "/Tickets.dat"; materials t1; ofstream file(park1.c_str(), ios::out | ios::app | ios::binary); if (file.is_open()) { auto r = material.begin(); for (r = material.begin();r != material.end();r++) { file.write((char *)&r, sizeof(r)); } file.close(); } } } void addcache()//function used to add to the vector<materials> container also the first func called { materials t1; dat = QDate::currentDate(); strncpy(t1.name1, pickapark->currentText().toStdString().c_str(), 30); strncpy(t1.ticketid, edit2->displayText().toStdString().c_str(), 10); strncpy(t1.serial, edit1->displayText().toStdString().c_str(), 10); l = dat.toString().toStdString(); strncpy(t1.date, l.c_str(), 15); t1.y = day1->currentText().toInt(); t1.check = 1; material.push_back(t1); } void viewtickets() { string par = "Sign Sammoric/Tickets/" + to_string(boyear->currentText().toInt()) + "/" + to_string(setmonth1(bomonth->currentText())) + "/" + to_string(boday->currentText().toInt()); if (is_directory(par.c_str())) { materials t1; par.append("/Tickets.dat"); ifstream file; if (!material.empty()); material.erase(material.begin(), material.end()); file.open(par.c_str(), ios::in | ios::binary); if (file.is_open()) { while (file.read((char *)&t1, sizeof(t1))) material.push_back(t1); } file.close(); } }
Kevin Marois
Так в чем же твой вопрос?
Osikwemen
хотите знать, правильно ли написана структура и все ли ее содержимое записано в файл.
[no name]
Вот что такое программирование. Вы сидите за рулем, а не мы.
1. научитесь использовать свой отладчик и убедитесь, что запись происходит так, как вы ожидаете.
2. загрузите программу чтения шестнадцатеричных файлов и проверьте содержимое полученного файла самостоятельно.