我对我遇到的这个小问题感到非常困惑。我有一个非索引文件格式标题。(更具体地说是 ID3 标头)现在,此标头存储一个字符串,或者更确切地说是三个字节,以确认数据实际上是一个 ID3 标记(TAG
顺便说一句是字符串)。重点是,现在TAG
文件格式中的 this 不是以空值结尾的. 所以有两件事可以做:
- 使用 和加载整个文件以
fread
进行非终止字符串比较,请使用strncmp
. 但:- 这听起来很骇人听闻
- 如果有人打开它并试图在没有先验知识的情况下操纵字符串怎么办?
- 另一种选择是加载文件,但 C 结构不应该完全映射到文件格式,而是包含适当的空终止符,然后应该使用唯一的调用加载每个成员。但是,这也感觉很hacky并且很乏味。
非常感谢您的帮助,尤其是有处理此类问题的实际经验的人的帮助。