【发布时间】:2018-11-15 00:55:42
【问题描述】:
我有一个名为 text.txt 的测试文件。其内容:
as
bq
df
但是 text.txt 的文件大小是 12 字节。为什么是 12 个字节?第一行有 3 个字节 as\n。第二行有 3 个字节 bq\n。第三行是 1 个字节 \n。第四行是3字节dfEOF。
3 + 3 + 1 + 3 = 10 bytes
但是当我检查文件的大小时,它显示的是 12 个字节。如果我的 txt 中只有一个字符。它说1个字节。所以我对如何获得 12 个字节感到困惑
我的一个记事本++按右箭头键的 GIF。向您展示没有空格空格: https://gyazo.com/82717bd0e339188adae3d72dc243ba37
我的十六进制:61 73 0d 0a 62 71 0d 0a 0d 0a 64 66
【问题讨论】:
-
@tod 我检查了空格并确保没有空格。我什至做了一个
CTRL+F来寻找空间。在您的计算机上自己尝试一下 -
使用十六进制编辑器/查看器检查文件内容,您将得到答案。您认为为空的行很可能实际上不是。或者有额外的空白字符,或者你以某种方式在文件上得到了一个字节顺序标记。
-
您确定您的
EOLN字符是\n而不是\r\n? (可能)也没有EOF标记。这样就剩下 3 个字节了,并且有 3 行带有EOLN。您可以使用二进制编辑器吗? -
@Kingsley 我只有记事本++
-
Windows 使用 2 个字符作为行尾。所以也许不是
as\n,而是as\r\n。 (请注意,如果您在代码中以文本模式读取文件,stdio 函数将在将内容传递给您的代码之前删除 \r)