主题:高手请进
#include<iostream>
#include<string>
#include<cctype>
using namespace std;
bool is_or_fuhao(const string s){
char ch;
for(string::size_type index=0;index!=s.size();index++)
{
ch=s[index];
if(ispunct(ch))
return true;
}
return false;
}
string del_symbol(string s){
string s1;
char ch;
for(string::size_type index=0;index!=s.size();index++){
ch=s[index];
if(!ispunct(ch))
s1+=ch;
}
return s1;
}
int main(){
string s,s1;
while(cin>>s){
if( is_or_fuhao(s)){
s1=del_symbol(s);
cout<<s1<<endl;
}
else
{ cout<<"please input a string again,y or n"<<endl;
char ch;
ch=getchar();
if(ch=='y')
{
continue;
}
else
return -1;
}
}
return 0;
}
这个程序,当我输入yin.txt时它就显示了yintxt,然后我再按任意键它就退出了,为什么?我的用意是可以进行n次操作的,即第一次完成后,如果我再输入数,如果数不符合要求,我按y又可以重新输入。请问高手这个程序错哪了。
#include<string>
#include<cctype>
using namespace std;
bool is_or_fuhao(const string s){
char ch;
for(string::size_type index=0;index!=s.size();index++)
{
ch=s[index];
if(ispunct(ch))
return true;
}
return false;
}
string del_symbol(string s){
string s1;
char ch;
for(string::size_type index=0;index!=s.size();index++){
ch=s[index];
if(!ispunct(ch))
s1+=ch;
}
return s1;
}
int main(){
string s,s1;
while(cin>>s){
if( is_or_fuhao(s)){
s1=del_symbol(s);
cout<<s1<<endl;
}
else
{ cout<<"please input a string again,y or n"<<endl;
char ch;
ch=getchar();
if(ch=='y')
{
continue;
}
else
return -1;
}
}
return 0;
}
这个程序,当我输入yin.txt时它就显示了yintxt,然后我再按任意键它就退出了,为什么?我的用意是可以进行n次操作的,即第一次完成后,如果我再输入数,如果数不符合要求,我按y又可以重新输入。请问高手这个程序错哪了。