void Init()
{
data = IoTool::Read("data.txt");
int data_pos = 0;
vector<Single> single_list;
vector<Many> many_list;
while (data[data_pos] != NULL) { //是有误的
char *line = data[data_pos++];
string str_line(line);
istringstream strin(str_line);
string type;
strin >> type;
if (type == "single") {
string name;
int price;
strin >> name >> price;
single_list.push_back(Single(name, price));
}
if (type == "many") {
string name;
int price;
strin >> name >> price;
string tmp_name;
int tmp_price;
vector<Single> many_single_list;
while (strin >> tmp_name >> tmp_price) {
many_single_list.push_back(Single(tmp_name, tmp_price));
}
many_list.push_back(Many(name, price, many_single_list));
}
if (type == "password") {
string password;
strin >> password;
g_administrator = Administrator(password);
}
}
g_purchase_menu.set_single_list(single_list);
g_purchase_menu.set_many_list(many_list);
}
g_purchase_menu.set_single_list(single_list);
g_purchase_menu.set_many_list(many_list);
while (data[data_pos] != NULL) { //是有误的
char *line = data[data_pos++];
string str_line(line);
这两句改为
for(auto it = data.begin() ; it != data.end() ; ++it) {
string str_line(it>c_str());
上面有误
while (data[data_pos] != NULL) { //是有误的
char *line = data[data_pos++];
string str_line(line);
这两句应改为
for(auto it = data.begin() ; it != data.end() ; ++it) {
string str_line(it->c_str());
老老实实GDB调试吧老哥,这样才能进步。
GDB简单使用:
https://foreverpersist.github.io/2017/04/13/gdb-usage/#more
data[data_pos] != NULL判断是否为空是这样判断的吗