C++字符串在输入时,使用cin流输入会遇到碰见空格自动暂停读取的问题
#include<iostream>
using namespace std;
int main()
{
char str[100];
cin>>str;
}
当然,也可以使用for循环多次读取实现输入
for(int i=0;i<defaultnum;i++)
{
cin>>s;
}
不过这样做的缺点是要明确循环的次数,在大量多次循环时输入过于繁琐
因此我们需要使用其他方法来实现整行读取
可以使用cin.getline()来接受一行字符串,默认回车为停止
括号内的三个参数分别为字符串的变量名和最大字符个数,如未达到最大字符读取个数提前接受到回车指令则结束读取,最后一个参数是结束字符(默认为'\0')
#include<iostream>
using namespace std;
int main()
{
char str[200];
cin.getline(str,200);
cout<<str<<endl;
}
输入:abc def gh
输出:abc def gh
此外在STL的字符串库中也提供了读取一行字符串的函数getline(),需要包含<string>
getline()同样有三个参数,分别为, 表示从流中获取字符串并存入str中,以delim作为标识停止符
istream && is,string&str,char delim
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
getline(cin,str);
cout<<str<<endl;
}
输入:abd cd ji
输出:abd cd ji