Programa ignora cin.getline ()

Eu fiz este programa, obtém os usuários endereço, nome e trabalho. Em seguida, coloca tudo em uma string e gera essa string. (Eu sei que existem maneiras melhores de fazer isso)

char str[600];
char adrs[200];
char name[10];
char wrk[200];
cout<<"Enter your name and press ENTER: ";
cin.getline(name,10);
cout<<"\nEnter your adress and press ENTER:";
cin.getline(adrs,200);
cout<<"\nEnter your workplace and press ENTER:";
cin.getline(wrk,200);
strcpy(str,"My name is ");
strcat(str,name);
strcat(str,"\nand i live at ");
strcat(str,adrs);
strcat(str, "\nI also work at ");
strcat(str, wrk); strcat(str, "\n\n");
cout<<str<<endl;

Aqui quando eu escrevo um nome que excede 10 caracteres O programa leva os primeiros 9 caracteres que o usuário digitou como eu esperava, mas depois disso ele pula todo o próximocin.getline() Que estão no programa e vão para a saídastr e termina o programa.

Por que isso acontece e como consertar isso?

questionAnswers(5)

yourAnswerToTheQuestion