C++ 查找 ofstream 的大小

标签 c++ ifstream ofstream string-length

我的代码目前执行如下操作:

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);

最佳答案

你想要告诉p。这可用于输出流(例如,ostream、ofstream、stringstream)。

有一个匹配的 tellg 可用于输入流(例如,istream、ifstream、stringstream)。请注意,stringstream 同时支持输入和输出,因此它同时具有 tellptellg

至于保持两个直线,p 表示 putg 表示 get,所以如果您想要使用 tellg 的“获取位置”(即读取位置)。如果您想要 put(写入)位置,您可以使用 tellp

注意fstream同时支持输入和输出,所以它同时包含了tellgtellp,但是你只能调用其中之一任何给定时间。如果最近的操作是写入,那么您可以调用 tellp。如果最近的操作是读取,您可以调用 tellg。否则,您不会获得有意义的结果。

关于C++ 查找 ofstream 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16825055/

相关文章:

c++ - 这会泄漏内存吗?

c++ - 将文件读入缓冲区

c++ - 从结构/类读取/写入文件

c++ - ofstream 写入十六进制而不是 char*

c++ - 当 ofstream 超出范围时偶尔出现 SEG FAULT

c++ - 调试——类/对象的东西,菜鸟问题

c++ - 当你有一个二维数组(在 C++ 中)时,调用析构函数的正确方法是什么?

c++ - 在新行上拆分字符

c++ - C++从文件中读取数据

C++ 模板函数。错误 C2440 : 'return' : cannot convert from '_FwdIt1' to '_FwdIt1'