Около часа тред не мог быть решён, поэтому предлагаю отлаженный рабочий код для Linux, g++, libc. Наследовано http://www.cplusplus.com/forum/articles/7312/ с той лишь разницей, что надо чистить буфер ввода, чтобы нажатие enter считывалось снова, а не захватывалось из предыдущего ввода.
Небольшой helloworld, который здоровается с пользователем, запрашивая его имя и ожидая нажатия Enter для завершения.
Исправлено:
$ cat 1.cpp
#include <iostream>
#include <limits>
using namespace std;
int main(int argc, char** argv)
{
string name;
cout << "Программа Hello!" << endl;
cout << "Введите Ваше имя и нажмите enter: ";
cin >> name;
cout << "Hello, " << name << endl;
char c[1];
cout << "Нажмите Enter для продолжения ";
//cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cin.getline(c, 1);
return 0;
}
$ g++ 1.cpp -o out
$ ./out
Программа Hello!
Введите Ваше имя и нажмите enter: znavko
Hello, znavko
Нажмите Enter для продолжения
$