如果seekg与seekp没什么分别,那它们分别存在的意思是什么。
如题!!
有几个简单问题相请教大家:
1.fstream到底是分别有一个读指针和一个写指针呢,还是共用一个指针进行读写.
2.为什么seekg与seekp会互相影响,也就是说seekg(10)=seekp(10)=tellp()=tellg().
3.如果seekg与seekp没什么分别,那它们分别存在的意思是什么。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
C++標準並不會去問對方如何去實現,所以
1) 你用的Linux XXX版本的libstdc++有可能使用同一個指針去實現seekg和seekp的功能,但在標準中你不該理解為同一的指針. 所以你理論上不用管他們是否IO都用同一個指針而是看有沒有錯。
2)如果你要不影響,你可以用不同的Stream。但問題不應該在互相影響上,而是在你沒有使用tellg時你不能說seekg的位置對不對, 同時你不用tellp不被調時,你也不可能知道seekp對不對,重點是你用seekp前要先知道自己在那,除了頭和尾.
3) 一個是用來讀的interface另一個是用來寫的, 如果你再往深一層去想,把File Stream的操作改為通用的stream,那不同的stream就有可能有不一樣的g和p指針而你的實現將不能重用.