c++ 读入字符的函数简介

cin>>

对于cin,从缓冲区取数据。接受一个数字,字符串,遇“空格”、“TAB”、“回车”都结束,然后把它丢弃。后面的cin>>继续读取“空格”、“TAB”、“回车”后面的字符。

get()函数

    char a[100],b[10],t;
    cin.get(a,100);
    cin.get(b,10);
    cout<<"a="<<a;
    cout<<" b="<<b;
    cin.get(c);//输入一个字符。

这里写图片描述
get()函数可以输入空格符,以Enter键结束,但不丢弃该字符。
由于第一次调用后,换行符将留在输入队列中,因此第二次调用时看到的第一个字符便是换行符,因此第二个get函数认为已到达行尾,而没有发现任何可读取的内容,即数组b值为空。
解决方法是借助get(),无参数的函数。其功能是读取下一个字符。

cin.get(a,size1);
cin.get();
cin.get(b,size2);

gets()函数

    char a[100],b[10],t;
    gets(a); 
    gets(b);
    cout<<"a="<<a;
    cout<<" b="<<b;

gets()函数可以输入多行字符串,直到输入回车键截止,在存储字符串时,他用空值字符(‘\0’) 来替换换行符。但是在vs2010中,提示gets()函数unsafe,Consider using gets_s instead。gets_s()函数只能输入标准输入流中的一行字符串。

cin.getline()

    char a[1000],b[100],t;
 //   gets(a); 
    //gets(b);
    cin.getline(a,1000); 
    cin.getline(b,100);
    cout<<"a="<<a;
    cout<<" b="<<b;

接受一个字符串,可以接收空格并输出。可以输入多行字符。
cin.getline()实际上有三个参数,cin.getline(接受字符串的储存空间,接受个数,结束字符)

getline()

    string a,b;
    getline(cin,a,'\n'); 
    getline(cin,b);
    cout<<"a="<<a;
    cout<<" b="<<b;

getline() 接受一个字符串,可以接收空格并输出,需包含#include<string>
可以读入多行字符。
和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数。

以上是代码测试所得,建议使用前先测试,更加可靠,believe your codes。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值