Programm überspringt cin.getline ()
Ich habe dieses Programm gemacht, es bekommt die Benutzeradresse, den Namen und die Arbeit. Dann fasst es alles zu einer Zeichenkette zusammen und gibt diese Zeichenkette aus. (Ich weiß, dass es dafür bessere Möglichkeiten gibt.)
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;
Hier, wenn ich einen Namen schreibe, der 10 Zeichen überschreitet Das Programm verwendet die ersten 9 Zeichen, die der Benutzer erwartungsgemäß eingegeben hat, überspringt jedoch alle weiteren Zeichencin.getline()
Das steht im Programm und geht zur Ausgabestr
und beendet das Programm.
Warum passiert dies und wie kann es behoben werden?