我有兴趣使用stl。
的流类知道C ++中文件的大小为了实现这一目标,很久以前,我打开了文件,然后我执行了一些如下操作:
file.seekp(0, ios_base::end); // another way is open file with ios::ate mode
unsigned long file_size = file.tellp();
根据文件类型和访问模式,使用seekg()
和tellg()
可以完成同样的事情。
但是,阅读一些关于doc的文章,特别是关于stl的Josuttis书,我看到tellp()
的返回类型是pos_type
而不是unsigned long
或任何类似的类型( size_t
,......)。
这种知道文件大小的方式仍然有效,至少对于二进制文件来说,但我不符合,因为我不确定它的安全性和可移植性,因为pos_type
无法正确地转换为{ {1}}。
所以我有以下问题: