C++中getline函数

随便看了下c++的课程,发现有用到一个getline函数,然后试了下,发现有一些问题。
首先查了一下api,它里面是是这么写的:
getline 
语法: 
  istream &getline( char *buffer, streamsize num );
  istream &getline( char *buffer, streamsize num, char delim );

getline()函数用于输入流,读取字符到buffer中,直到下列情况发生: 
num - 1个字符已经读入, 
碰到一个换行标志,
碰到一个EOF, 
或者,任意地读入,直到读到字符delim。delim字符不会被放入buffer中
然后顺手敲了一遍,
    char c[100];
    getline(c, 10);
发现运行出错,错误提示是没有匹配的函数。查了一些资料后才知道,c++有两个getline函数,一个是在头文件<string>中的全局函数,而另一个是istream的
成员函数。
因为刚才没有引进<string>头文件,直接使用getline就没有找到这个函数了。
另外,两个函数的用法都很简单
全局函数istream& getline ( istream& is, string& str, char delim )
is是一个输入流(如cin),delim是一个界定符,遇到delim的字符就会结束输入。这个函数的功能就是把is中的字符读入到str中,直到遇到delim结束或者遇到文件尾。
成员函数istream &getline( char *buffer, streamsize num, char delim );
因为c++中类型检测严格,buffer只能是char*类型,不能是string类型,num表示的是最大读入数。函数往buffer中读入num-1个字符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值