std::istream::get

get()含有三种重载模式

单字符:

single character:  int get();(如果到文件尾就返回EOF)

        istream& get(char & c);

从流中读取一个字符,结果保存在引用c中,如果到文件尾就返回空字符。

如file.get(x);表示从文件中读取一个字符,并把读取的字符保存在x中。

c字符串:

c-string:   istream& get(char* s,streamsize n);    

     istream& get(char* s,streamsize n,char delim);

从流中提取字符,并将其作为c字符串存储在s中,直到读入了n个字符或者遇到定界字符位置,定界符为‘\n’或delim。

如ifstream &get(char *buf,int num,char delim='\n');把字符读入由buf指向的数组,直到读入了num个字符或遇到了delim指定的字符,如果没使用delim这个参数,将使用缺省值换行符'\n'。

流缓冲:

stream buffer:  istream& get(streambuf& sb);

        istream& get(streambuf& sb,char delim);

从流中提取字符,并将其插入到由流缓冲区对象sb控制的输出序列中,一旦插入失败或输入序列中遇到定界符('\n'或delim),则停止。从流中仅提取成功插入到sb的字符,定界符不会在sb插入的字符里,会将它从输入序列里提取并将其保留为下一个要从流中提取的字符。

 

posted @ 2019-11-01 11:47  一只蒟蒻也有大佬梦  阅读(1488)  评论(0编辑  收藏  举报