首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ios::ate不会移动到文件的末尾

ios::ate不会移动到文件的末尾
EN

Stack Overflow用户
提问于 2018-10-07 16:04:31
回答 1查看 345关注 0票数 1

我有个小程序。

代码语言:javascript
复制
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    fstream f("file.txt", ios::out);
    f << "Hello world!" << endl;
    f.close();

    fstream atEnd("file.txt", ios::out | ios::ate);
    cout << "Position: " << atEnd.tellp() << endl;
    atEnd << "You too" << endl;
    atEnd.close();

    return 0;
}

它应该打开文件,在文件中写入一些内容,然后关闭它,在文件末尾再次重新打开,因此应该在文件末尾追加文本"You of“。但是这个位置总是0,内容被重写:compiler。这一切为什么要发生?根据文档,ios::ate应该在打开后立即寻求流的结束。

EN

回答 1

Stack Overflow用户

发布于 2018-10-07 16:14:46

我认为附加模式足以满足您所要做的工作:fstream f.open("file.txt", ios::app );

或者,您也可以在编写之前使用seekp,尽管它不是首选的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52690353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档