c++ - 如果seekg与seekp没什么分别,那它们分别存在的意思是什么。
ringa_lee
ringa_lee 2017-04-17 11:01:48
[C++讨论组]

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

ringa_lee
ringa_lee

ringa_lee

全部回复(1)
ringa_lee

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号