文本和二进制模式文件 I/O
文件 I/O 操作将在文本或二进制这两种转换模式之一中进行,具体取决于文件是在哪种模式下打开的。 数据文件通常在文本模式下处理。 若要控制文件转换模式,可以:
保留当前默认设置,并且仅在打开选定文件时指定替代模式。
使用函数
_set_fmode
更改新打开的文件的默认模式。 使用_get_fmode
查找当前默认模式。 初始默认设置为 ANSI 文本模式(_O_TEXT
)。通过在程序中设置全局变量
_fmode
来直接更改默认转换模式。 函数_set_fmode
将设置此变量的值,不过也可以直接设置它。
当调用一个文件打开函数(如 _open
、fopen
、fopen_s
、freopen
、freopen_s
、_fsopen
或 _sopen_s
)时,可通过指定函数 _set_fmode
的相应自变量来重写 _fmode
的当前默认设置。 默认情况下,stdin
、stdout
和 stderr
流始终在文本模式中打开;在打开这些文件中的任一文件时,也可以重写该默认值。 使用 _setmode
可在文件打开后利用文件说明符更改转换模式。