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 篇原创文章 · 获赞 17 · 访问量 6931

猜你喜欢

转载自blog.csdn.net/weixin_45907018/article/details/104027312
今日推荐