首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

[急救]fstream对象怎么读取一个更新中的文件

2013-12-20 
[急救]fstream对象如何读取一个更新中的文件?需求如下:程序A输出内容到 res.txt程序B启动时,定位到 res.tx

[急救]fstream对象如何读取一个更新中的文件?
需求如下:
程序A输出内容到 res.txt
程序B启动时,定位到 res.txt的末尾,然后不断读取res.txt中新出现的行。

fsFile.open(strResFileNm.c_str(), fstream::in | fstream::app);
fsFile.seekg(0, fsFile.end);

while (TRUE)
{
    ....
    fsFile.getline(szBuff, sizeof(szBuff), '\n');
    ...
}
就停住了。

难道B打开文件的时候,只能读取到打开之前的res.txt内容?A不断写进去的读不到吗?
该如何实现呢?
[解决办法]
fstream::app,这个每次操作都会定位到文件末尾,末尾哪有数据呢?

很明显应该用ate,只在打开时定位到末尾一次就可以了,后续就是不停的读。

另外,fstream是有EOF标记位的,你恰好读到末尾那接下来的getline都会直接返回失败,你必须clear恢复一下flag.

热点排行