问题5 cin>>,cin.getline,cin.get,getline的用法

cin>>

1.输入一个字母或者字符

#include
using namespace std;
int main(){
    int a;
    cin>>a;
    cout<
1.png

2.接收一个字符串,遇“空格”、“TAB”、“回车”就结束

#include
using namespace std;
int main(){
    char a[5];
    cin>>a;
    cout<
2.png

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<
3.png

接收5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出;

把5改成20:
4.png

cin.get()

1.cin.get(字符变量名),用来接收字符,只获取一个字符,可以接收空格,遇回车结束

#include
using namespace std;
int main(){
    char a[5];
    for(int i=0;i<5;i++){
        cin.get(a[i]);
        cout<
5.png

2.cin.get(数组名,接收字符数目),用来接收字符串,可以接收空格,遇回车结束。

注意:数组的最后一个字符会是‘\0’,设接收字符数目为n,如果输入的字符串大于等于n,则实际接收到的输入是字符串的前面n-1个字符,包括空格(不包括回车,遇到回车就结束了),会自动在后面增加一个‘\0’。

#include
using namespace std;
int main(){
    char a[5];
    cin.get(a,5);
    cout<
6.png

3.cin.get(),没有参数,主要用于舍弃输入流中不需要的字符,或者舍弃回车,即舍弃输入流中的一个字符。

没有用cin.get(),则后面的e会从输入流中继续读入

#include
using namespace std;
int main(){
    char a[5],b[5];
    cin.get(a,5);
    cin.get(b,5);
    cout<
7.png

有cin.get(),则d后面的e被省略了。

#include
using namespace std;
int main(){
    char a[5],b[5];
    cin.get(a,5);
    cin.get();
    cin.get(b,5);
    cout<
8.png

getline()

接收一个字符串,可以接收空格并输出,需包含“#include

#include
#include
using namespace std;
int main ()
{
string str;
getline(cin,str);
cout<
9.png

与cin.getline()的区别:
1.cin.getline()接收输入字符串的是数组,getline()是string类型。
2.cin.getline()可以接收空格,但不能接收回车;getline()可以接收空格和回车
3.cin.getline()会在数组结尾是'\0',getline()不会

你可能感兴趣的:(问题5 cin>>,cin.getline,cin.get,getline的用法)