I want to read strings with white spaces into members of a structure. Tried using getline but both the output statements are clubbed with a single cin for both. As per the similar posts here, tried using cin.ignore, but the input is not read into the member of the structure. Pls help. It's a part of my assignment and I'm a beginner in C++. This is how my code looks like:
#include <string.h>
using namespace std;
struct book {
  string title, author;
  int no_of_pages, year;
  float price;
};
int main() {
  int N;
  cout << "Enter the no. of books whose details are to be entered:" << endl;
  cin >> N;
  book b[N];
  int x;
  for (x = 0; x < N; x++) {
    cout << "Enter the title of book #" << x + 1 << ":" << endl;
    getline(cin, (b[x].title));
    // cin.ignore();
    cin.ignore(1000, '\n');
    cout << "Enter the author's name:" << endl;
    getline(cin, (b[x].author));
    cout << "Enter the no. of pages:" << endl;
    cin >> b[x].no_of_pages;
    cout << "Enter the price of book:" << endl;
    cin >> b[x].price;
    cout << "Enter the year of publishing" << endl;
    cin >> b[x].year;
  }
  for (x = 0; x < N; x++) {
    cout << "\n\n";
    cout << "The details of book" << x + 1 << " are:" << endl;
    cout << "Title          :" << b[x].title << endl;
    cout << "Author         :" << b[x].author << endl;
    cout << "No. of pages   :" << b[x].no_of_pages << endl;
    cout << "Price          :" << b[x].price << endl;
    cout << "Publishing year:" << b[x].year << endl;
    cout << "---------------------------------------------";
  }
  return 0;
}
 
     
    