I have a high-school teacher who gave us a list of 10 questions. And each week he gives us another book to read and tells us to answer those 10 questions in a typed report. So I made a C++ program with the 10 questions pre programmed in, so the program would ask me the question, and I would type in each answer. And at the end it would output every question with each answer and I would copy and paste it into word. But I'm having a problem. (I don't want you to think that I want you to write a program for me, because I already have all the code finished, I just have one problem:

So I declare the variables that will hold the answer to each question:

char sQuestion1[256];
char sQuestion2[256];
char sQuestion3[256];

Then the program prompts for input:

cout << "What is your name?" << endl;
cin >> sQuestion1;

cout << "What is the name of the book?" << endl;
cin >> sQuestion2;

cout << "Who is the author of the book?" << endl;
cin >> sQuestion3;

I compile the code and run the program just fine. But if one of my inputs to the question has a space in it, the program will skip the next step:
For example, this is copy pasted directly from the program:

What is your name?
John Smith
What is the name of the book?
Who is the author of the book?

it doesn't let me type for "What is the name of the book?". It just skips right to the next one.
What can I do to fix this?