以"ios::in|ios::out"模式打开文本文件时,文件内容是否被删除?
Are file contents deleted when a text file is opened in "ios::in|ios::out" mode?
我最近很红,当使用ios::out
模式打开文本文件时,默认情况下ios::trunc
可用。所以当我使用 ios::in|ios::out
模式打开文件时,ios::trunc
是否会自动可用?
我认为内容不会被删除,因为 ios::in
也被使用并且 get pointer 和 put pointer 最初都指向文件中的第零个字节。
我说的对吗?
虽然单独的 out
确实意味着 trunc
,但 in|out
却没有。此处列举了完整的详细信息:https://en.cppreference.com/w/cpp/io/basic_filebuf/open
如果你想写入文件但不破坏现有内容,你也可以使用app
(这意味着out
)。缺少 in
或 app
,任何现有内容都将被 out
销毁。
我最近很红,当使用ios::out
模式打开文本文件时,默认情况下ios::trunc
可用。所以当我使用 ios::in|ios::out
模式打开文件时,ios::trunc
是否会自动可用?
我认为内容不会被删除,因为 ios::in
也被使用并且 get pointer 和 put pointer 最初都指向文件中的第零个字节。
我说的对吗?
虽然单独的 out
确实意味着 trunc
,但 in|out
却没有。此处列举了完整的详细信息:https://en.cppreference.com/w/cpp/io/basic_filebuf/open
如果你想写入文件但不破坏现有内容,你也可以使用app
(这意味着out
)。缺少 in
或 app
,任何现有内容都将被 out
销毁。