我正在研究 C++ 中的文件处理,但我无法看出 ios::app 和 ios::noreplace 模式之间的区别。请帮忙。
注意:ios::noreplace 在某些旧版本中是非标准模式,但我很想知道它!
IIRC
ios::noreplace
是某些旧版本的 MS 运行时库的非标准部分。它被添加到 C++23,所以一开始就有一个区别。
另一个区别是
ios::noreplace
根本不附加:如果文件存在(因此名称不可替换),它就会失败,并且仅当文件一开始不存在时才打开它。 ios::app
打开文件(如果存在)或创建一个新文件,并在每次写入之前查找末尾。