我制作了这个程序,它可以获取用户的地址、姓名和工作。然后它将所有内容放入一个字符串并输出该字符串。(我知道有更好的方法来做到这一点)
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
并结束程序。
为什么会发生这种情况以及如何解决?