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插入的字符里,会将它从输入序列里提取并将其保留为下一个要从流中提取的字符。