C++ 如何根据文本文件的内容确定文本文件的大小
假设文本文件包含以下文本:C++ 如何根据文本文件的内容确定文本文件的大小,c++,sizeof,C++,Sizeof,假设文本文件包含以下文本: 1.11111111 2.22222222 3.33333333 4.44444444 5.55555555 文件的大小是多少?我们如何确定呢 假设:[5*(每行10个字符对应10个字节)+每个字符串末尾5个空指针]=55个字节 但是windows给我额外显示了3个字节,总共58个字节。3个字节从哪里来 编辑: 空指针占用零字节。所以,我们有8个额外的字节 更多编辑: 经过一些实验后,每次按ENTER键都会创建2个字节。这就是8个字节的来源——按4次ENTER键。这
1.11111111
2.22222222
3.33333333
4.44444444
5.55555555
文件的大小是多少?我们如何确定呢
假设:[5*(每行10个字符对应10个字节)+每个字符串末尾5个空指针]=55个字节
但是windows给我额外显示了3个字节,总共58个字节。3个字节从哪里来
编辑:
空指针占用零字节。所以,我们有8个额外的字节
更多编辑:
经过一些实验后,每次按ENTER键都会创建2个字节。这就是8个字节的来源——按4次ENTER键。这些字节在编程术语中被称为什么?
\n
和\r
在每行末尾,除了最后一个字节分别取1个字节。\n
和\r
在每行末尾,除了最后一个字节分别取1个字节。在十六进制编辑器中打开它?我的猜测是文件中的\n
和/或间接线没有空终止符,只有字符串有空终止符。另一个你看不到的额外字节的原因是BOM表。行不以“空指针”结尾,“空指针”不需要零字节来存储…@bames53,特洛伊:你说得对。sizeof('\0')显示1个字节。我以为每一行都会被视为一个字符串,因此以空指针结尾。在十六进制编辑器中打开它?我的猜测是文件中的\n
和/或间接线没有空终止符,只有字符串有空终止符。另一个你看不到的额外字节的原因是BOM表。行不以“空指针”结尾,“空指针”不需要零字节来存储…@bames53,特洛伊:你说得对。sizeof('\0')显示1个字节。我认为每一行将被视为一个字符串,因此以空指针结尾。因此,在每一行的末尾,我们有一个\n(1字节)和\r(1字节),总共2个字节,除了最后一个?是的。顺便说一句,在linux中,我们只有\n
,所以我敢打赌你有windows:)你可以在@user1478983上阅读控制字符是的,在windows上,CRLF通常用于结束行(回车后接换行符,或'\r'
后接'\n'
)。大多数其他平台只使用换行符。因此在每行的末尾我们有一个\n(1字节)和\r(1字节),总共2个字节,除了最后一个?是的。顺便说一句,在linux中,我们只有\n
,所以我敢打赌你有windows:)你可以在@user1478983上阅读控制字符是的,在windows上,CRLF通常用于结束行(回车后接换行符,或'\r'
后接'\n'
)。大多数其他平台只使用换行符。