获取c ++ ofstream的put指针的原始值(用于存储)

时间:2011-01-22 04:18:15

标签: c++

要获取c ++ ofstream输出指针的位置,我调用ostream :: tellp()返回一个streampos对象。我想将这个可能非常大的值存储到二进制文件中。

但是,我找不到从此streampos对象获取输出指针位置的原始值的方法。如果我不担心这个值非常大,我只需将其转换为整数;但是,我的文件大小可能只有几千兆字节。有没有人对此有任何想法?

谢谢!

1 个答案:

答案 0 :(得分:2)

streampos是某些(通常是无符号)整数类型的typedef。尽管文件中的位置通常被称为“put指针”,但实际上并没有要获取的指针值。

在最近的编译器中,streampos将编译为本机64位整数(即msvc ++上的unsigned long longunsigned __int64,或GCC上的uint64_t ,这意味着只要你留下streampos值的东西,你就不必担心。