文本和二进制流

文本流包括可写入一个面向文本显示编写文本的一个或多个行,以便可以读取。在读取文本流时,程序读取 NL (换行符) 在每行的结尾。当写入文本流,程序写入 NL 进行通知行时结束。若要匹配在目标环境中的不同约定表示的文件中的文本,库函数可以修改字符数和表示传输是在程序和文本流之间。

因此,置于文本流中是有限的。通过调用 fgetposftell获取当前文件位置指示符。可以将文本流。位置通过调用 fsetposfseek获得此流的方式或首先,或结尾。其他位置的更改说不定会不支持。

为取得最大可移植性,程序不应编写:

  • 空文件。

  • 空格在行尾。

  • 部分行 (通过省略 NL 在文件末尾)。

  • 除了可打印字符、 NL 和 HT (水平制表符) 之外的字符。

如果您遵循这些规则,则从文本流读取字符的序列 (以字节或多字节字符) 将与字符序列将文本流编写,在创建该文件。否则,函数都会删除您创建的文件,如果文件为空,关闭它。也可以修改或删除的字符与写入文件。

二进制流包含一个或多个字节任意信息。您可以编写存储在为 (面向字节) 的二进制流的随机对象和正确读取的值的存储在对象中时,编写完。库函数不会更改您在传输程序和二进制流之间的字节。它们,但是,追加任意 null 字节到承载的文件使用二进制流编写。程序必须处理这些附加 null 字节中所有二进制流的末尾。

因此,确定在二进制流中是显式定义的,但将相对于流的末尾。您可以获取和修改当前文件位置指示符与文本流的。此外, ftellfseek 使用的偏移量计数字节从最初是字节零) 的流 (,因此,在这些偏移量整型算法提供可预知的结果。

字节流将文件作为字节序列。在程序中,流类似于字节同一序列,但所述的可能更改顶部。

请参见

参考

文件和流