71 ios::ate和ios:app写入文件之间有什么区别。 在我看来,ios::app您可以在文件中四处移动,而ios::ate只能在文件末尾读/写。这个对吗? c++ file fstream c++-standard-library — 亚当_G source 顺便说一句,确实是ios_base::ate和ios_base::app。 — LF
77 相反。当ios::ate设定,初始位置将是文件的末尾,但你可以自由此后寻求。当ios::app设置,所有的输出操作都在文件的末尾进行。由于所有写入都隐含在查找之前,因此无法在其他位置进行写入。 — 乔恩·珀迪 source
38 它们被指定如下(在C ++ 11的27.5.3.1.4中): app 在每次写之前寻求结束 ate 打开并尝试在打开后立即结束 随着ios::app文件中写入位置是“粘” -所有的写操作都在最后,无论你在哪里寻找。 — 史蒂夫·杰索普 source
29 这里记录的很好。 ios::ate “将流的位置指示器设置为打开时流的末尾。” ios::app “在每次输出操作之前,将流的位置指示器设置为流的末尾。” 这意味着不同之处在于ios::ate打开文件时将其位置放到文件末尾。ios::app而是在每次刷新流时将其放在文件末尾。例如,如果您两个写入同一日志文件的程序ios::ate将覆盖自另一个程序自打开该程序以来添加到该文件的任何内容。ios:app每当您的程序添加日志条目时,它将跳到文件末尾。 — Haatschii source
ios_base::ate
和ios_base::app
。