C++中输入三个字符串,第三个老是无法写入,怎么回事?在线等
- C/C++ code
int main(){ char *p1=new char[MAX_LEN]; cout<<"请输入字符串S1:"; cin.getline(p1,MAX_LEN-1); String s1(p1); char *p2=new char[MAX_LEN]; cout<<"请输入待查找子串S2:"; cin.getline(p2,MAX_LEN-1); String s2(p2); cout<<"验证bool is_substring(const char* p)\n"; if(s1.is_substring(p2)) cout<<"S1中找到S2!"<<endl; else cout<<"S1未找到S2!"<<endl; cout<<"验证bool is_substring(const String &p)\n"; if(s1.is_substring(s2)) cout<<"S1中找到S2!\n"<<endl; else cout<<"S1未找到S2!\n"<<endl; cout<<"验证String substring(int start,int length)\n"; int start,length; cout<<"请输两个整数(起始位置、子串长度):"; cin>>start>>length; if(s1.substring(start,length).get_str()!=NULL) { cout<<"在S1中搜寻结果为:"<<s1.substring(start,length).get_str()<<endl; } else ; cout<<"\n验证int find_replace_str(const char* find_str,const char* replace_str)\n\n"; char *p3=new char[MAX_LEN]; cout<<"请输入用于替换子串的字符串S3:"<<endl; cin.getline(p2,MAX_LEN-1); String s3(p3); cout<<"\n在S1中找到S2的次数为"<<s1.find_replace_str(p2,p3)<<endl; cout<<"替换后的S1为:"<<s1.get_str()<<endl;输入P1,P2时都正常,到P3时就直接跳过不让输入了。。。怎么回事?
[解决办法]
cin.sync();
cin.clear();
[解决办法]
在每一个输入前面加上前面两句
[解决办法]