You are trying to test if a number (input, an integer) is the same as a string. That makes no sense. One is a single number and the other is a fancy class object wrapping an array of char. What does it even mean for them to be the same?
You're also asking the user what their name is, and then trying to store that in an int value. Storing input such as "Oliver" as an int value makes no sense.
Think carefully about what kind of object input should be.
Please do not change code in posts. It makes following posts nonsensical for everyone reading the thread.
Well let's take a look at the new error.
Line 21: error: expected ‘;’ before ‘cin’
Let's take a look at line 21. cin >> input;
Well there's the cin. It says it expected a semi-colon before that. Let's take a look at what comes before that. cout << "What's your name?"
Hey, look, here's a line with no semi-colon on the end.
The moral of today's story is read the error messages and look at the code it points you to.
Well actually the moral of the story is learn what errors mean what on the compiler you are using. If you have just started learning C++ this is still pretty easy to do. Just write a simple program like the one you have above. Once it has run with no compiler errors, in there and start changing little things one at a time and see what error it pops out. Also look at the manual for your compiler they usually have sections on there error messages.
I know what you are thinking "but that could take hours", yes it could but it will pay off in the long run when forget to a something and a pesky mysterious error code pops up and you already know what it means instead of spending "hours" trying to fix it.