要获取c ++ ofstream输出指针的位置,我调用ostream :: tellp()返回一个streampos对象。我想将这个可能非常大的值存储到二进制文件中。
但是,我找不到从此streampos对象获取输出指针位置的原始值的方法。如果我不担心这个值非常大,我只需将其转换为整数;但是,我的文件大小可能只有几千兆字节。有没有人对此有任何想法?
谢谢!
答案 0 :(得分:2)
streampos
是某些(通常是无符号)整数类型的typedef。尽管文件中的位置通常被称为“put指针”,但实际上并没有要获取的指针值。
在最近的编译器中,streampos
将编译为本机64位整数(即msvc ++上的unsigned long long
或unsigned __int64
,或GCC上的uint64_t
,这意味着只要你留下streampos
值的东西,你就不必担心。