Вместо cin.sync () используйте cin.clear ();
Вам также может понадобиться использовать cin.ignore ().
Проблема в том, что у вас застрял ^ D в cin, и он блокирует все будущие записи в cin.Контроль D закрывает системный трубопровод.И программа немедленно завершает работу.
Это может быть более полезным, если вы проверите вход, который завершает список ввода.
Выполнение с использованием cin.sync ():
$ ./a.out
Enter the word that you dislike.
test
a
b
c
^d
Enter the list of words.
Program completed.
$
Выполнение после замены cin.sync () с добавлением cin.clear () и cin.ignore ():
$ ./a.out
Enter the word that you dislike.
test
a
b
c
^d
Enter the list of words.
a
b
c
^d
Program completed.
$