cin>>
1.输入一个字母或者字符
#include<iostream>
using namespace std;
int main(){
int a;
cin>>a;
cout<<a<<endl;
}
2.接收一个字符串,遇“空格”、“TAB”、“回车”就结束
#include<iostream>
using namespace std;
int main(){
char a[5];
cin>>a;
cout<<a<<endl;
}
cin.getline()
1.cin.getline(接收字符串到m,接收个数n,结束字符)。接收一个字符串,可以接收空格等,
2.最后一个字符为‘\0’。结束符可以通过设置第三个参数自己设置,默认是回车。
3.m不能为string类型。
4.如果将例子中cin.getline()改为cin.getline(m,5,'a');当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk
using namespace std;
int main(){
char a[20];
cin.getline(a,5);
cout<<a<<endl;
}
接收5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出;
cin.get()
1.cin.get(字符变量名),用来接收字符,只获取一个字符,可以接收空格,遇回车结束
#include<iostream>
using namespace std;
int main(){
char a[5];
for(int i=0;i<5;i++){
cin.get(a[i]);
cout<<a[i];
}
}
2.cin.get(数组名,接收字符数目),用来接收字符串,可以接收空格,遇回车结束。
注意:数组的最后一个字符会是‘\0’,设接收字符数目为n,如果输入的字符串大于等于n,则实际接收到的输入是字符串的前面n-1个字符,包括空格(不包括回车,遇到回车就结束了),会自动在后面增加一个‘\0’。
#include<iostream>
using namespace std;
int main(){
char a[5];
cin.get(a,5);
cout<<a;
}
3.cin.get(),没有参数,主要用于舍弃输入流中不需要的字符,或者舍弃回车,即舍弃输入流中的一个字符。
没有用cin.get(),则后面的e会从输入流中继续读入
#include<iostream>
using namespace std;
int main(){
char a[5],b[5];
cin.get(a,5);
cin.get(b,5);
cout<<a<<endl;
cout<<b<<endl;
}
有cin.get(),则d后面的e被省略了。
#include<iostream>
using namespace std;
int main(){
char a[5],b[5];
cin.get(a,5);
cin.get();
cin.get(b,5);
cout<<a<<endl;
cout<<b<<endl;
}
getline()
接收一个字符串,可以接收空格并输出,需包含“#include<string>”
#include<iostream>
#include<string>
using namespace std;
int main ()
{
string str;
getline(cin,str);
cout<<str<<endl;
}
与cin.getline()的区别:
1.cin.getline()接收输入字符串的是数组,getline()是string类型。
2.cin.getline()可以接收空格,但不能接收回车;getline()可以接收空格和回车
3.cin.getline()会在数组结尾是'\0',getline()不会