ios::app 和 ios::noreplace 文件处理模式有什么区别?

What is the difference between ios::app and ios::noreplace modes in file handling?

我正在研究 C++ 中的文件处理,但我看不出 ios::app 和 ios::noreplace 模式之间的区别。请帮忙。

注意:ios::noreplace在某些旧版本中是非标准模式,但我很想知道它!

IIRC ios::noreplace 是某些旧版本 MS 运行-time 库的非标准部分。它不是标准的 C++,因此一开始就有一个区别。

另一个区别是 ios::noreplace 根本不追加:如果文件存在(因此名称为 no replace),它就会失败,只有当它最初不存在时才会打开它。 ios::app 打开文件(如果存在)或创建一个新文件并在每次写入前查找到结尾。