网上科普有关“c++三种get函数的写法”话题很是火热,小编也是针对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个字符时终止。
你可能对fin>>c这一句理解有误了,每次会从输入流中读取字符串,字符串之间的由换行符,空格或者制表符分割,所以在例子中,读取了一个a之后遇到空格就截断了,输出一个a。再往下读,遇到b和一个空格,就又截断了,输出b,以此类推,而不是按你说的自动舍去空格。
若要修改的话,可以试试用readline()函数,读取一行:string s = fin.readline().
关于“c++三种get函数的写法”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
本文来自作者[元山]投稿,不代表新盛号立场,如若转载,请注明出处:https://liuxinsheng.com/cshi/202503-12376.html
评论列表(4条)
我是新盛号的签约作者“元山”!
希望本篇文章《c++三种get函数的写法》能对你有所帮助!
本站[新盛号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育
本文概览:网上科普有关“c++三种get函数的写法”话题很是火热,小编也是针对c++三种get函数的写法寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助...