經過各種渠道學習
在本篇對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()就可以沒有換行符