There is a precise order to things.
You're basically expecting this to work
a = myvar + 2;
cin >> myvar; // type in 5
// here you're expecting a to be 5 + 2, and it simply isn't going to happen.
Read strings in, THEN build them up with your other data.