В этих строках:
cin >> i; cout << " ";
cin >> i; cout << " ";
cin >> i; cout << " ";
... вы читаете число (если возможно), а затем просто печатаете пробел, не число, которое вы только что прочитали. Если вам действительно нужно это сделать, я, вероятно, напишу небольшую функцию и воспользуюсь ею:
int get_input() {
int ret;
cin >> ret;
cout << ret;
return ret;
}
// ...
cout << "Enter four integers: ";
for (int i=0; i<4; i++)
get_input();
Не могу сказать, что мне особенно нравится эта функция, но в сложившихся обстоятельствах она, вероятно, по крайней мере, немного лучше, чем ничего (только не намного лучше).