C++ fstream读文件是一次性读到内存里的吗

求指点一下C++中fstream读文件是在使用reader.get(buffers,len)的时候才从硬盘读数据到内存,还是reader.open(path)时就把文件已... 求指点一下C++中 fstream 读文件是在使用reader.get(buffers, len)的时候才从硬盘读数据到内存 ,还是reader.open(path)时就把文件已经全部读进了内存呢 展开
 我来答
百度网友96ffcf7
2015-09-01 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22719 获赞数:118726
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部

可以一次性读入,结合字符串流,将文件中的内容一次性读入内存,代码如下:

using std::ostringstream;  
using std::ifstream;  
using  std::string;  
std::string  fileContent;  
string strFileName="ServiceIpConfig.txt";//文件名字  
fin.open(strFileName.c_str());  
if (fin.is_open())  
{  
    ostringstream temp;//字符串流,提供对于string对象的写的功能。  
    temp<<fin.rdbuf();//往字符串流中写  
    fileContent= temp.str();  
    fin.close();  
}
05063520
2014-06-26
知道答主
回答量:9
采纳率:0%
帮助的人:8.6万
展开全部
reader.open(path)
追问
那再麻烦问一下 这块内存一定是连续的吗 怎样取到reader这块文件内存的首地址呢
追答
上面说错了应该是get
reader.get(buffer, len),给了缓冲区,长度
open打开文件句柄

连续
reader.seekg(0, ios::beg);取到reader这块文件的起始位置
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式