【发布时间】:2011-02-23 06:14:54
【问题描述】:
我有以下简单的代码:
ofstream output("test");
output << 'a';
当我对文件进行八进制转储时,我得到了这个:
0000000 000141
0000001
我可以看到 000141(以 8 为基数)是 8 位宽,而 0000001 可能是 EOF。 所有 0 的第一个字节是什么,为什么它在那里?我知道它是 null 是 ascii 但它的目的是什么?
【问题讨论】:
-
我相信左列中的那些数字是字节索引号,而不是文件中的字符(否则,为什么它们有八位而不是六位?)
-
@James:很好。更深层次的谜团是八进制的原因。
-
文件中不会有特定的 EOF 标记,因为这要求文件中没有该标记(与 C 样式中不能有
'\0'的原因相同细绳)。文件长度将独立维护。
标签: c++ file-format octal