c++ - 以 fstream::out 模式打开 fstream 是否会删除其当前内容?

标签 c++ file-io fstream eof

如标题所说,以fstream::out 模式打开fstream 会清除其当前内容吗? 如果不是,使用 fstream 库删除 .txt 文件的最佳方法是什么。

C++ fstream 库中 EOF 的等价物是什么?

最佳答案

std::basic_filebuf 打开一个文件时,它的行为就好像它调用了相关的 C 函数(它是否真的这样做取决于实现)。

[filebuf.members] 中的表格概述了当某些标志被传递时会发生什么,如果你只传递 std::ios_base::out 那么它就像文件是用 stdio 打开的一样string "w",如果您的文件已经存在,它将删除它。

如果没有传递任何标志,fstream 的默认设置是调用 basic_filebuf::openstd::ios_base::in | std::ios_base::out,就像使用了 "r+" 一样,它又将文件位置定位在文件的开头,但如果它保留内容不变已经存在。

供引用:

enter image description here

关于c++ - 以 fstream::out 模式打开 fstream 是否会删除其当前内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24924282/

相关文章:

c++ - XCode 中的字符串 (C++)

c++ - 为什么使用 clang -std=gnu++11 时此 C++ 代码会编译?

c++ - 如何通过遍历数组来读取和存储实例的值?

c - 无法打开 FIFO 进行写入

c++ - 如何用fstream打开软盘

c++ - 无法与 libiberty 链接

python - 在文件开头写()?

c++ - 在没有循环的情况下从 C++ 中的映射中删除文本文件的单词

c++ - 如何使用 std::getline() 将文本文件读入 C++ 中的字符串数组?

java - Java读取文件的前10个字节