Программа пропускает cin.getline()

Я сделал эту программу, она получает адрес, имя и работу пользователей. Затем он помещает все это в одну строку и выводит эту строку. (Я знаю, что есть лучшие способы сделать это)

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;

Здесь, когда я пишу имя, которое превышает 10 символов, программа берет первые 9 символов, введенных пользователем, как я и ожидал, но после этого она пропускает все следующие cin.getline(), которые есть в программе, и переходит к выводу strи заканчивает программа.

Почему это происходит и как это исправить?

5
задан Mike McMahon 6 August 2012 в 20:28
поделиться