在C++中如何高效灵活的读入字符串一直是一个困扰许多初学者的问题,现在我就来尝试整理一些C++中读入字符串的方法。
为了方便速查,我将几种常见的情况做归类:
不能读取空格,也不能读取回车
1.一般的cin读入方法:
即:
string s;
cin>>s;
优点:几乎所有人都知道这么用(博主在整理之前似乎也最熟练用这种)
缺点:不能读取空格和回车,非常不方便。
能读取空格,但不读取回车(想整行整行操作)
string中的getline函数。
string s;
getline(cin,s);
iostream 中的gets()函数
char s[20];
gets(h);
//注意,gets()里面的参数不能用string类
编程法,也称构造法
int main(){
string s;
char h[20];
char hs;
char* ss;
while(cin.get(hs)){
ss=new char;
*ss=hs;
s+=ss;
if(hs=='\n')
break;
}
cout<<s<<endl;
return 0;
}