C++中cin,cin.get() , cin.getline(), getline(),gets(),getchar()的区别以及用法

1、cin >>

用法1:最基本同时也是最常用的用法,输入一个数字:

#include
using namespace std;
int main ()
{
int a,b;
cin >> a >> b;
cout << a+b <<endl;
}

输入:1[回车]2[回车]
输出:3

用法2:接受一个字符串,遇“空格”、“TAB”、“回车”都结束

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

输入:abcdefghi
输出:abcdefghi

输入:abcde fghik
输出:abcde //遇空格结束

2、cin.get()

用法1: cin.get(字符变量名)可以用来接收字符

#include
using namespace std;
int main ()
{
char ch;
ch = cin.get(); //或者cin.get(ch);
cout << ch << endl;
}

输入:abcdefgh
输出:a

用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格

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

输入:bcd bcd bcd
输出:bcd bcd bcd

输入:abcdeabcdeabcdeabcdeabcde (输入25个字符)
输出:abcdeabcdeabcdeabcd (接收19个字符+1个’\0’)

用法3:cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足.

3、cin.getline() // 接受一个字符串,可以接收空格并输出
用法一:cin.geline(数组名称,要读取的字符数);
#include
using namespace std;
int main ()
{
char m[20];
cin.getline(m,5);
cout<<m<<endl;
}

输入:abcdefgh
输出:abcd
接受5个字符到m中,其中最后一个为’\0’,所以屏幕只看到4个字符输出;

如果把5改成20:
输入:abcdefghi
输出:abcdefghi

输入:abcd efghij klstywz
输出:abcd efghij klstywz

用法二:cin.getline(数组名称,要读取的字符数,结束字符);
当第三个参数省略时,系统默认为’\0’
如果将例子中cin.getline()改为cin.getline(m,5,‘s’);当输入abcdefghi时输出abcd,输入abcsdefgi时,输出abc

4、getline() // 接受一个字符串,可以接收空格并输出,需包含“#include”

#include
#include
using namespace std;
int main ()
{
string str;
getline(cin,str);
cout<<str<<endl;
}

输入:abcdefghi
输出:abcdefghi

输入:abcd efghij klstywz
输出:abcd efghij klstywz
和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数;string 版本的getline()将自动调整目标string对象的大小,使之刚好能够存储输入的字符。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值