我的代码当前执行类似以下操作:
ofstream fout;
fout.open("file.txt");
fout<<"blah blah "<<100<<","<<3.14;
//get ofstream length here
fout<<"write more stuff"<<endl;
有没有一种方便的方法可以找出在我上面指定的阶段写入的那行的长度? (在现实生活中,int 100 和 float 3.14 不是恒定的,可以改变)。有没有好的方法来做我想做的事?
编辑:就长度而言,我的意思是可以使用 fseek 使用的东西,例如
fseek(pFile, -linelength, SEEK_END);
你要tellp
。这可用于输出流(例如,ostream、ofstream、stringstream)。
有一个匹配的tellg
可用于输入流(例如 istream、ifstream、stringstream)。注意stringstream
同时支持输入和输出,因此它同时具有tellp
and tellg
.
至于保持两者一致,p
means put
和g
means get
,所以如果你想要“获取位置”(即读取位置),你可以使用tellg
。如果你想要put
(写)位置,你使用tellp
.
注意fstream
同时支持输入和输出,因此它包括tellg
and tellp
,但在任何给定时间您只能调用其中一个。如果最近的操作是写入,那么您可以调用tellp
。如果最近的操作是读取,您可以调用tellg
。否则,您不会得到有意义的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)