Ich versuche, einige Daten von diesen Vektoren auf Textdateien zu schreiben. Wenn ich den Code ausführe, wird ein Laufzeitfehler zurückgegeben. Category
, Product
, Cart
, Customer
und Address
sind alle struct
mit Mitgliedern, die jeweils get_member
zurückgibt.Vector Iterator nicht dereferencable (Vektor innerhalb Vektor)
ofstream write_cats;
write_cats.open("catprd.dat", ios::out, ios::trunc);
vector<Category>::iterator i;
write_cats << cats.size() << endl;
for (i = cats.begin(); i < cats.end(); i++) {
write_cats << i -> get_catid() << '\t';
}
vector<Product>::iterator j;
write_cats << prods.size() << endl;
for (j = prods.begin(); j < prods.end(); j++) {
write_cats << j -> get_prodid() << '\t';
write_cats << j -> get_prodprice() << endl;
}
write_cats.close();
ofstream write_carts;
write_carts.open("carts.dat", ios::out, ios::trunc);
vector<Cart>::iterator k;
write_carts << carts.size() << endl;
for (k = carts.begin(); k < carts.end(); k++) {
write_carts << k -> get_cartid() << '\t';
write_carts << k -> get_day() << endl;
}
vector<Cart_item>::iterator l;
write_carts << cart_items.size() << endl;
for (l = cart_items.begin(); l < cart_items.end(); l++) {
write_carts << l -> get_cartitemid() << '\t';
write_carts << l -> get_qty() << endl;
}
write_carts.close();
ofstream write_custs;
write_custs.open("custs.dat", ios::out, ios::trunc);
vector<Customer>::iterator m;
vector<Address>::iterator n;
write_custs << custs.size() << endl;
for (m = custs.begin(); m < custs.end(); m++) {
write_custs << m -> get_cust_id() << '\t';
write_custs << n -> get_zip_code() << endl;
}
write_custs.close();
Returns Laufzeitfehler "Vector Iterator dereferencable nicht" Hier
ist, wie struct Address
wie folgt aussieht:
using namespace std;
#pragma once
#include <string>
struct Address {
public:
int get_st_number() const{return st_number;}
int get_zip_code() const{return zip_code;}
string get_st_name() const{return st_name;}
Address(){}
Address (int num, string name, int zip)
: st_number(num), st_name(name), zip_code(zip) {}
private:
int st_number;
int zip_code;
string st_name;
};
und struct Customer
:
struct Customer {
public:
Address get_address() const{return addr;}
int get_cust_id() const{return cust_id;} customer id
string get_name() const{return cust_name;}
Customer (int id, string n, Address a)
: cust_id(id), cust_name(n), addr(a) {}
string display_addr() const {
std::cout<<setw(15)<<cust_name<<" ";
std::cout<<setw(15)<<cust_id<<" ";
return string();
}
private:
int cust_id;
string cust_name;
Address addr;
};
Willkommen bei StackOverflow. Ihr Codefragment ist zu lang und zu kurz. Es ist zu lang und mit zu viel überflüssiger Schmiere gefüllt, damit die Leute es verstehen können. Es ist auch zu kurz; Es fehlen die Schlüsselstücke, die zum Kompilieren benötigt werden. Bitte erstellen Sie ein ** kurzes **, ** vollständiges ** Programm, das Ihr Problem veranschaulicht. Weitere Informationen finden Sie unter http://sscce.org. –