C++11中不允许使用gets()得到一行字符。若使用字符数组,C++ string的优秀功能不能使用。
现找到使用getline的方法可以用C++11得到一行字符。特记之。
一、string
1、读入不能包含空白符的字符串
string s;
cin>>s;
读入字符串,遇到空白符、回车符等结束。
2、读入一行,以回车符结束
string s;
getline(cin,s);//s中不包含回车符
cout<<s;
3、先读入一个整数n,再读入n个字符串
输入格式:第一行是一个整数n,第二行到第n+1行是可以含空白符的字符串
输出格式:对第二行到第n+1行,原样输出
坑点:
cin>>n;会把整数读入n。但是后面的回车符还在。
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
int n;
cin>>n;
string s;
getline(cin,s);//把n后面的回车符消灭掉
for(int i=0;i<n;i++)
{//读入第2行到第n+1行,并输出
string s;
getline(cin,s);
cout<<s<<endl;
}
return 0;
}
输入数据:
输出数据: