gpt4 book ai didi

c++ - ios::ate 不会移动到文件末尾

转载 作者:太空宇宙 更新时间:2023-11-04 12:43:52 26 4
gpt4 key购买 nike

我有这个小程序。

#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 too”应该附加在文件末尾。但位置始终为 0,内容被重写:https://www.onlinegdb.com/online_c++_compiler .为什么会这样?根据文档,ios::ate 应该在打开后立即寻找到流的末尾

最佳答案

我认为追加模式足以满足您的需求:fstream f.open("file.txt", ios::app );

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

关于c++ - ios::ate 不会移动到文件末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52690353/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com