C++ 中cin.get(); cin等區別

經過各種渠道學習
在本篇對cin、cin.get( )、cin.getline( )、getline( )、gets( )做一個概述;
寫的不好各位大佬多多指教在這裏插入圖片描述

cin基本用法

用法1;cin>>a>>b;可以單個輸入字符;
用法2;字符數組的輸入
它的不足在於接收“空格”、"Tab“、”回車“、都會終止接收導致輸入不完整,所以纔有cin.get( )。

#include <iostream>
using namespace std;
int main()
{char a[20];
cin>>a;
cout<<a<<endl;
}

區別如下;
輸入:opopopp
輸出:opopopp

輸入:op opoppp
輸出:op

cin.get

用法1.接收單個字符

#include <iostream>
using namespace std;
int main()
{char ch;
cin.get(ch);
cout<<ch<<endl;
}

輸入:opopopp
輸出:o在這裏插入圖片描述用法2.接收字符數組(接收一行字符串)且可以接受空格

#include <iosteam>
using namespace std;
int main()
{
char a[20];   //包括'\0'
cin.get(a,20);
cout<<a<<endl;
}

輸入:op op p
輸出:
包括空格
輸入:abcdefghijklmnopqrstuvwxyz
輸出:在這裏插入圖片描述
(注意;他只接收19位,最後一位留給 ‘\0’。其中a[20]也可以單個輸出其中字符如a[5]、a[9])

cin.getline( )

用於規定用戶輸入字符個數與終止條件多維數組也可用
1.用法:(規定個數)

#include <iostream>
using namespace std;
int main ()
{char a[20];
cin.getline(a,5);   //包含'\0'
cout<<a<<endl;
}

輸入:abcdef
輸出:在這裏插入圖片描述
(注意包含’\0’)
2.用法(終止條件)

#include <iostream>
using namespace std;
int main()
{char a[20];
cin.getline(a,6,'a');
cout<<a<<endl;
}

輸入:qweapp
輸出:在這裏插入圖片描述
(圖中以’a’爲終止條件,如果沒有默認’\0’)
3.用法(多維數組)

#include <iostream>
using namespace std;
int main()
{ char a[5][20];
for(int i=0;i<3;i++)
cin.getline(a[i],20);
for (int j=0;j<3;j++)
cout<<a[j]<<endl;
cout<<a[0];
}

輸入:aaa bb cc
輸出在這裏插入圖片描述

gets( )

(接收一串字符,可以接受空格)必須包含頭文件#include <cstring
且也可以多維數組賦值用法與cin.getline()類似,不再贅述

getchar( )

僅接收單個字符,也要包含於#include <cstring頭文件中

cin.get()與cin.getline()區別

若cin.get(a,20)而僅輸入5個字符,那麼總會多一個’\n’在輸入流中
而cin.getline()就可以沒有換行符在這裏插入圖片描述

發佈了15 篇原創文章 · 獲贊 18 · 訪問量 8232
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章