Я делаю домашнее задание для класса C ++, мне поручено создать структуру, которая будет содержать данные для 4 подразделений компании и данные о продажах за каждый квартал.Я должен сохранить структуру в двоичном файле, а затем повторно импортировать ее и прочитать данные.На самом деле все работает, как и ожидалось, однако после вывода я получаю RUN FAILED, ошибка кода выхода 1.
Сначала я думал, что это из-за какого-то массива вне границ, но оглядываясь на код, я не могу найтиit.
* Author: James Hartley
* Created on March 27, 2019, 10:09 PM
* Description: Gaddis Ch.12 Problem 11-12 Corporate Sales Data Output/Input
*/
#include <iostream>
#include <fstream>
using namespace std;
struct division {
string name;
int qtrSales[4];
};
void structToFile(string fileName, division* div, int arySize) {
fstream fileObject;
fileObject.open(fileName, ios::out | ios::binary);
fileObject.write(reinterpret_cast<char *>(div), sizeof(division) * arySize);
fileObject.close();
}
void fileToStruct(string fileName, division* div, int arySize) {
fstream fileObject;
fileObject.open(fileName, ios::in | ios::binary);
fileObject.read(reinterpret_cast<char *>(div), sizeof(division) * arySize);
fileObject.close();
}
int main(int argc, char** argv) {
division divs[4];
division divsImport[4];
divs[0].name = "East"; divs[1].name = "West"; divs[2].name = "North"; divs[3].name = "South";
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
cout << "Please enter Quarter " << j+1 << " sales for " << divs[i].name << " division" << endl;
cin >> divs[i].qtrSales[j];
}
}
structToFile("struct.dat", divs, 4);
fileToStruct("struct.dat", divsImport, 4);
for (int i = 0; i < 4; i++) {
cout << "Division: " << divsImport[i].name << endl;
for (int j = 0; j < 4; j++) {
cout << "Quarter: " << j+1 << endl;
cout << "Sales: " << divsImport[i].qtrSales[j] << endl;
}
}
return 0;
}
Он выводит корректно, однако сообщает мне, что после выхода RUN FAILED код выхода 1.