Programa salta cin.getline ()

He hecho este programa, obtener la dirección, nombre y trabajo de los usuarios. Luego lo pone todo en una cadena y genera esa cadena. (Sé que hay mejores maneras de hacer esto)

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;

Aquí cuando escribo un nombre que supera los 10 caracteres, el programa toma los primeros 9 caracteres que el usuario ingresó como esperaba, pero después de eso omite todos los siguientes.cin.getline()&nbsp;Que están en el programa y van a la salida.str&nbsp;y termina el programa.

¿Por qué sucede esto y cómo solucionarlo?