如果seekg与seekp没什么分别,那它们分别存在的意思是什么。

发布于 2022-08-24 11:50:58 字数 190 浏览 12 评论 0

如题!!
有几个简单问题相请教大家:
1.fstream到底是分别有一个读指针和一个写指针呢,还是共用一个指针进行读写.
2.为什么seekg与seekp会互相影响,也就是说seekg(10)=seekp(10)=tellp()=tellg().
3.如果seekg与seekp没什么分别,那它们分别存在的意思是什么。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷夜 2022-08-31 11:50:58

C++標準並不會去問對方如何去實現,所以
1) 你用的Linux XXX版本的libstdc++有可能使用同一個指針去實現seekg和seekp的功能,但在標準中你不該理解為同一的指針. 所以你理論上不用管他們是否IO都用同一個指針而是看有沒有錯。

2)如果你要不影響,你可以用不同的Stream。但問題不應該在互相影響上,而是在你沒有使用tellg時你不能說seekg的位置對不對, 同時你不用tellp不被調時,你也不可能知道seekp對不對,重點是你用seekp前要先知道自己在那,除了頭和尾.

3) 一個是用來讀的interface另一個是用來寫的, 如果你再往深一層去想,把File Stream的操作改為通用的stream,那不同的stream就有可能有不一樣的g和p指針而你的實現將不能重用.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文