输入整数后输入整行字符串的解决方法
当输入内容是整数,然后后面需要输入整行字符串的时候,处理起来会非常麻烦,并且我自己在比赛当中也遇到过好几次,这次好好整理一下方法。
先说一下我自己的错误情况,在如下输入的时候:
2
4
hello worl d
hello cpp ++a
输入内容是两个整数,然后两个整行的字符串,这种情况,我们如果用string和cin正常情况下是需要用到getline的:
signed main(){
int a,b;
string t;
string s;
cin>>a>>b;
getline(cin,s);
getline(cin,t);
cout<<a<<" "<<b<<"\n";
cout<<s<<"\n"<<t;
return 0;
}
这样的话输出如下:
2 4
hello worl d
我们会发现4后面的回车会作为第一个字符串的结束标志。所以我们要想办法先将这个回车去掉,那我使用了getchar():
signed main(){
int a,b;
string t;
string s;
cin>>a>>b;
getchar();
getline(cin,s);
getline(cin,t);
cout<<a<<" "<<b<<"\n";
cout<<s<<"\n"<<t;
return 0;
}
但是这个有时候会出现一些问题,有时会出现毛病,这个也是一直困扰我的问题。
那么这个问题如果解决呢,最好是使用cin.get():
signed main(){
int a,b;
string t;
string s;
cin>>a>>b;
cin.get();
getline(cin,s);
getline(cin,t);
cout<<a<<" "<<b<<"\n";
cout<<s<<"\n"<<t;
return 0;
}
输出:
2 4
hello worl d
hello cpp ++a
版权声明:本文为qq_45985728原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。