首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++中输入三个字符串,第三个老是无法写入,咋回事

2012-05-20 
C++中输入三个字符串,第三个老是无法写入,怎么回事?在线等C/C++ codeint main(){char *p1new char[MAX_LE

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();
[解决办法]
在每一个输入前面加上前面两句
[解决办法]
探讨

cin.sync();
cin.clear();

热点排行