When you put data in double enter is needed. Pass that mistake.
Code:#include<iostream> using namespace std; struct book { string author; string title; string publisher; int pubyear; float price; }; char op = 'a'; bool idcall=0; int i=0; book *B; bool choice(char, bool); int main(); void datainput(){ int n=0; book *A; A = new book[i]; B = new book[i]; do{ delete[] B; B = new book[i+1]; cout<<"\n Author: "; getline(cin, B[i].author); cin.ignore(); cout<<" Title: "; getline(cin, B[i].title); cin.ignore(); cout<<" Publisher: ";getline(cin, B[i].publisher); cin.ignore(); cout<<" Publication year: ";cin>> B[i].pubyear; cin.ignore(); cout<<"\n Price: "; cin>>B[i].price; cin.ignore(); n=i; if(i!=0)for(i-=1;i>=0;i--)B[i]=A[i]; i=n; delete[] A; if(n==0){A = new book[i+1];A[i]=B[i];} else {A = new book[n+1]; for(;n>=0;n--) A[n]=B[n];} i++; cout<<"\n\n Would you like to register futher more? (y for Yes, n for No): "; cin>>op; cin.ignore(); idcall=1; choice(op, idcall); }while(idcall==0); main(); } bool choice(char op, bool idcall){ entry: switch(op){ case 'y': if(idcall==0) datainput(); else {::idcall=0; return(idcall);} case 'n': if(idcall==0) exit(0); else return(idcall); default: cout<<"\n Read more careful, please."; if(idcall==0) cout<<" Would you like to put data in? (y for Yes, n for No): "; cin>>op; cin.ignore(); break; if(idcall==1) cout<<" Would you like to register futher more? (y for Yes, n for No): "; cin>>op; break; } goto entry; } int main(){ if(idcall==1) goto lastpart; cout<<" The database editor is ready.\n Are you sure that you would like to put data in? (y for Yes, n for No): "; cin>>op; cin.ignore(); choice(op, 0); lastpart: for(i-=1;i>=0;i--){cout<<endl<<"\n Author: "<<B[i].author;cout<<endl<<"\n Title: "<<B[i].title; cout<<endl<<"\n Publisher: "<<B[i].publisher; cout<<endl<<"\n Publication year: "<<B[i].pubyear;cout<<endl<<"\n Price: "<<B[i].price;cout<<"\n\n";} cin.get(); }



LinkBack URL
About LinkBacks


