【发布时间】:2013-05-06 13:37:48
【问题描述】:
我定义了一个数组:
字符 arr[1480];
现在,我从一个文件中准确读取了 1480 个字符并放入 arr(通过执行 arr[i]=c)。 我知道 1480 个字符,因为我使用 while 循环一次读取一个字符 (istream.get()) 并在递增索引 = 1480 时停止。
但是,在那之后,我执行 strlen(array) 并返回 1512。怎么会?这仅在某些情况下发生,但并非在所有情况下都会发生,即使每次我从文件中读取时,我总是最多读取 1480 个字符。
我怀疑一个字符可能占用超过 1 个单位(strlen(arr) 返回的单位)。 如果是这样,我该如何解决这个问题?
谢谢
PS:我之前问过一个关于我的指针被垃圾的问题,这就是我有一个长度> 1480的缓冲区(arr)时的原因。
【问题讨论】:
-
你可能不是 null 终止数组 -
arr[1479] = '\0'.