У меня есть следующий код:
void module_books::show_item(int n, TABLE<BOOK> b) {
cout<<"Title: "<<b[n]->title<<"\n";
cout<<"Author: "<<b[n]->author<<"\n";
cout<<"Issue: "<<"no. "<<b[n]->issueno<<". "<<b[n]->city<<", "<<b[n]->publisher<<", "<<b[n]->year<<"\n";
cout<<"ISBN: "<<b[n]->isbn<<"\n";
cout<<"Pages count: "<<b[n]->pages<<"\n";
cout<<"Information: Loan count: "<<b[n]->outcount<<". ";
if(b[n]->damaged) cout<<"DAMAGED ";
if(b[n]->out) cout<<"LOANED";
cout<<"\n\n";
}
int module_books::add_item(TABLE<BOOK> &b) {
int _year, _issueno, _pages;
bool _damaged=false;
string _title, _author, _isbn, _publisher, _city, stmp;
cout<<"You're adding new book to the list.\nFill in the following fields:\n\n";
cout<<"Title: "; getline(cin,_title);
cout<<"Author: "; getline(cin,_author);
cout<<"Issue no: "; cin>>_issueno; cin.ignore(std::numeric_limits<std::streamsize>::max(), L'\n');
cout<<"Issued in (city): "; getline(cin,_city);
cout<<"Issuer: "; getline(cin,_publisher);
cout<<"Issued in (year): "; cin>>_year; cin.ignore(std::numeric_limits<std::streamsize>::max(), L'\n');
cout<<"ISBN: "; getline(cin,_isbn);
cout<<"Pages count: "; cin>>_pages;
cout<<"Is damaged? (y/n): "; cin>>stmp; cin.ignore(std::numeric_limits<std::streamsize>::max(), L'\n');
if(stmp=="y" || stmp=="yes" || stmp=="Y" || stmp=="Yes" || stmp=="YES") _damaged=true;
int n=b.size();
b.push_back(BOOK(_title,_author,_publisher,_city,_isbn,_year,_issueno,_pages,_damaged));
cout<<"\nThe book has been added:\n\n";
show_item(n,b);
cout<<"\nreturning\n";
return n;
}
BOOK — это просто структура с некоторыми переменными-членами. TABLE — это шаблон структуры, который работает как вектор STL (я просто не могу использовать вектор, поэтому мне пришлось написать собственный шаблон, в данный момент он использует статический массив T ar[100]
).
Проблема в том, что я получаю сообщение о том, что книга была добавлена, и функция show_item печатает все данные, но я не получаю «возвращающегося» сообщения.
Я пытался установить точки останова, чтобы show_table
функция доходит до конца }
, но программа никогда не доходит до «возвращающегося» сообщения.
Что может быть не так с этим кодом? Я использую 32-битный QTCreator с MinGW. Моя ОС — 64-битная Win8.1, если это поможет …
Задача ещё не решена.
Других решений пока нет …