随便看了下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个字符。
C++中getline函数
最新推荐文章于 2023-10-13 15:11:51 发布