Вы не прочитали ни одного ввода от пользователя.Вы могли бы просто сделать:
cin >> type;
Но на самом деле вы хотите проверить, что это тоже успешно, например, не eof или другие ошибки, в противном случае все еще возможно зацикливание навсегда, если пользователь нажал Crtl - D , например.
Проверка, успешно ли это:
if (!(cin >> type)) {
// Reading failed
cerr << "Failed to read input" << endl;
return -1;
}
Что вы могли бы сделать частью условия цикла:
while (cin >> type && type != 'y');
Совет от Xeo по поводу вызова cin.ignore()
важен, так как вы почти наверняка получите более одного char
значения для ввода.