I have a problem I'm not sure where the error is occurring. I think it's when I used cin.ignore in my code.

My problem is occurring in case A. For some reason the program stops right after I enter my price information. I tried doing small codes to figure where my problem is coming from. Everything works fine except the price variable. I am not sure why?

int main()
    double amount;
    char choice;
    cout << "Please enter a starting amount in the store's cash registar:" << endl;
    cin >> amount;

    while(amount < 0)
        cout << "Must enter a positive price.  Please re-enter:";
        cin >> amount; 
    cout << endl;
    Store Bookstore(amount);

        cout << endl;
        cout << "Enter your menu selection:  ";
        cin >> choice;
       // Respond to the  user's menu selection
       switch (choice)
       case 'a':
       case 'A':
           cout << "Please enter the information in the following order: title, author, genre, price" << endl;
           char title[31], author[21], genre, gen;
           double price;
           gen = CheckGenre(genre);
           cin >> price;
           Bookstore.AddBook(title, author, gen, price);

       case 'F':
       case 'f':
           cout << "Please enter title or author to search for a book in the inventory list"<< endl;
           char selection[30];
       case 'S:':
       case 's':
           cout << "Please type in the title of the book you would like to sell"<< endl;
           char sold[31];
       case 'D':
       case 'd':
       case 'G':
       case 'g':
           cout << "Please input a genre"<< endl;
           cout << "Please input a genre" << endl;
           char genre2;

       case 'M':
       case 'm':
       case 'X':
       case 'x':
           double money;
           money = Bookstore.GetAmount();
           cout << "$ " << setprecision(2) << fixed << right << money << endl;
           return 0;
           cout << "Incorrect selection, Please select a selection from the memu" << endl;
    while (isalpha(choice));

   return 0;
}                    // end main()

void Menu()
/* Declare your array and write the menu loop */
       // Display the menu and get a choice
  cout << "A:   Add a book to inventory" << endl; 
  cout << "F:   Find a book from inventory" << endl;  
  cout << "S:   Sell a book" << endl;  
  cout << "D:   Display the inventory list" << endl;  
  cout << "G:   Genre summary" << endl;  
  cout << "M:   Show this Menu" << endl;  
  cout << "X:   eXit the program" << endl;  
char CheckGenre(char genre)
    while ((genre != 'F') && (genre != 'f') && (genre != 'M') && (genre != 'm') && (genre != 'S') && (genre != 's') && (genre != 'C') && (genre != 'c'))
               cout << "Invalid genre entry.  Please re-enter: ";
               cin >> genre;
    return genre;

Also When did the Add function to work, The Inventory function would display that there is no bokk in the inventory.

Add Book Function

void Store::AddBook(const char* t, const char* a, char g, double p)
// Insert a new book into the direrctory.
    Genre gen;
    gen = ConvertGenre(g);
    if (sizeNow == maxSize)                        // If the directory is full, grow it.
    bookEntry[sizeNow++].Set(t, a, gen, p);        // read new book.

Increase Function

void Store::Increase()
    maxSize = sizeNow + 5;                // Determine a new size.
    Book* newBook = new Book[maxSize];    // Allocate a new array.
   for (int i = 0; i < sizeNow; i++)    // Copy each book into
    newBook[i] = bookEntry[i];            // the new array.
   delete [] bookEntry;                    // Remove the old array
   bookEntry = newBook;                    // Point old name to new array.


Inventory Function

void Store::Inventory()
   if (sizeNow == 0)
    cout << "\nCurrent inventory is empty.\n";
 // Display a header.
  cout << setw(30) << left <<"Title" << setw(20)<< left << "Author" << setw(11) << left << "Genre" << setw(7) << right << "Price" << endl << endl;
   for (int i = 0; i < sizeNow; i++)    // For each book,
    bookEntry[i].Display();                // send it to output

Can you post your entire code, including all your custom data types and objects, so I can compile it? It'll just be quicker that way for me to see the problems.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.