c - 如何在程序崩溃前检测文本文件是否损坏?

标签 c map quake2

我正在用 ANSI C 编写命令行程序来解析 Quake 2 map 文件以报告正在使用的实体和纹理数量。我的开发机器是 MacBook。我正在 OS X Snow Leopard(32 位)、Windows XP(32 位)和 Vista(64 位)以及 Ubuntu 9.10(32 位)上进行测试。

我在 Vista 上有一个崩溃的错误,程序会因某个 map 文件而挂起。花了一段时间才弄清楚这不是程序而是 map 文件本身。我没有注意到文本文件有任何异常。重新打开并保存 map 文件可解决该问题。

我的代码将整个 map 文件加载到内存中,使用 strtok() 使用 '\n' 分隔行,解析每一行,并将数据加载到单链表中进行处理。有没有办法检测 map (文本)文件是否损坏?

最简单的非编程解决方案是添加包含问题和解决方案的 FAQ 文件。

最佳答案

当您阅读每一行时,对其进行解析,以确定它是否有效。如果您的方法失败,您可以简单地让用户知道数据已损坏,但您仍然可以正常退出。

关于c - 如何在程序崩溃前检测文本文件是否损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2324077/

相关文章:

3d - 用于研究应用的最流行的开源、免费、有据可查的游戏引擎

c - 有没有办法使用 gcc 将 C 转换为 MIPS?

c - 指向结构的指针在声明时总是设置为 NULL 吗?

java - 如何根据条目集过滤 map 条目

java - 类型安全 : Unchecked cast and Generics

android - 如何获取此 map 代码的当前位置?当我打开 map 时还试图从服务器接收车辆数据

c - Quake2中qglTexImage2D的第三种internalFormat

c - 在 c 中,sizeof()..[-1] 是什么意思

c - for 循环上的多个 pragma 指令(C 和 VS 2013)