diff --git a/Associative.cpp b/Associative.cpp index dabbaf1d46c87d8a5d8b6a3ddb65424a64091602..ac3c977f2824e80fb114ad284c1afb308b54292e 100644 --- a/Associative.cpp +++ b/Associative.cpp @@ -43,7 +43,8 @@ void mainClass::load_in() if (!in.is_open()) return; record cur; - while (in.read((char*)(&cur), sizeof(record))) //!!! Использовать reinterpret_cast + char* p = reinterpret_cast(&cur); + while (in.read(p, sizeof(record))) { s++; records_map.insert({ s, cur }); diff --git a/Header.h b/Header.h index 9c38a1ecbdd5aea8262574b6a3c86c196503137e..9e4e168182ca1bbceca0ded9c02446d1c0f95c10 100644 --- a/Header.h +++ b/Header.h @@ -14,10 +14,9 @@ struct record { unsigned int amount; double price_for_one; record() = default; - - //!!! Код не должен быть шире 100 символов. Отфортировать в столбик. - - record(unsigned int c_number, unsigned int p_code, const char* c_name, const char* c_creation_date, unsigned int c_expiration, unsigned int c_amount, double c_price_for_one) { + record(unsigned int c_number, unsigned int p_code, const char* c_name, + const char* c_creation_date, unsigned int c_expiration, unsigned int c_amount, + double c_price_for_one) { number = c_number; code = p_code; strcpy_s(name, c_name); @@ -29,7 +28,12 @@ struct record { bool operator == (const record& rec) const { - return (number == rec.number && code == rec.code && strcmp(name, rec.name) == 0 && strcmp(date, rec.date) == 0 && expiration == rec.expiration && amount == rec.amount && price_for_one == rec.price_for_one); + return (number == rec.number && code == rec.code && + strcmp(name, rec.name) == 0 && + strcmp(date, rec.date) == 0 && + expiration == rec.expiration && + amount == rec.amount && + price_for_one == rec.price_for_one); } friend std::ostream& operator <<(std::ostream& out, const record& rec); friend std::istream& operator >>(std::istream& in, record& rec);