C++get函数

ifstream的get()用法
  get()函数比较灵活,有3种常用的重载形式,实际有6种重载:
  int get();
  istream& get ( char& c );
  istream& get ( char* s, streamsize n );
  istream& get ( char* s, streamsize n, char delim );
  istream& get ( streambuf& sb);
  istream& get ( streambuf& sb, char delim );
  针对常用的三种形式讲下
  一种就是和put()对应的形式:ifstream &get(char &ch);功能是从流中读取一个字符,结果保存在引用ch中,如果到文件尾,返回空字符。如file2.get(x);表示从文件中读取一个字符,并把读取的字符保存在x中。
  另一种重载形式的原型是: int get();这种形式是从流中返回一个字符,如果到达文件尾,返回EOF,如x=file2.get();和上例功能是一样的。
  还有一种形式的原型是:ifstream &get(char *buf,int num,char delim='\n');这种形式把字符读入由 buf 指向的数组,直到读入了 num 个字符或遇到了由 delim 指定的字符,如果没使用 delim 这个参数,将使用缺省值换行符'\n'。例如:
  file2.get(str1,127,'A');     //从文件中读取字符到字符串str1,当遇到字符'A'或读取了127个字符时终止。
注意:cin.get()是保留回车在输入流队列中的.而cin是丢弃回车的.get()收到回车或空格或制表符就停止输入了
1) 不带参数的get函数
其调用形式为
    cin.get()
用来从指定的输入流中提取一个字符(包括空白字符),函数的返回值就是读入的字符。 若遇到输入流中的文件结束符,则函数值返回文件结束标志EOF(End Of File),一般以-1代表EOF,用-1而不用0或正值,是考虑到不与字符的ASCII代码混淆,但不同的C ++系统所用的EOF值有可能不同。
2) 有一个参数的get函数
其调用形式为
    cin.get(ch)
其作用是从输入流中读取一个字符,赋给字符变量ch。如果读取成功则函数返回true(真),如失败(遇文件结束符) 则函数返回false(假)
3) 有3个参数的get函数
其调用形式为
    cin.get(字符数组, 字符个数n, 终止字符)

    cin.get(字符指针, 字符个数n, 终止字符)

其作用是从输入流中读取n-1个字符(加入一个字符串结束标志),赋给指定的字符数组(或字符指针指向的数组),如果在读取n-1个字符之前遇到指定的终止字符,则提前结束读取。如果读取成功则函数返回true(真),如失败(遇文件结束符) 则函数返回false(假)。

(部分摘抄C语言中文网)

你可能感兴趣的:(c++)