对于我的游戏,我正在创建一个具有不同数字ID的图块的图块,例如1,28等。此地图数据保存到用户编辑的.dat文件中,看起来有点像这样:
0,83,7,2,4
现在为了让游戏生成正确的图块,它必须看到地图数据显然是什么。我希望这个小解析器做的是跳过空格和逗号,并获取数字数据。此外,我希望它的方式不仅可以获得单个数字的ID号,还可以获得2-3个数字(83等)。
感谢您的帮助!
答案 0 :(得分:0)
听起来像strtok函数的工作:
#include <stdlib.h>
#include <string.h>
int parseData(char* data, size_t maxAllowed, int* parsedData) {
char * pch;
pch = strtok (data," ,");
int idx = 0;
while (pch != NULL)
{
parsedData[idx++] = atoi(pch); //convert to integer
if (i == maxAllowed) {
break; //reached the maximum allowed
}
pch = strtok (NULL, " ,");
}
return i; //return the number found
}
//E.g.
char data[] ="0, 83, 7, 2, 4";
int parsedData[5];
int numFound = parseData(data,5,parsedData);
上面的示例将删除所有空格和逗号,返回每个找到的整数值以及找到的元素总数。
使用C函数可以轻松读取文件。您可以一次性读取它,也可以按块读取(为每个块调用函数)。
答案 1 :(得分:0)
这是CSV解析,但很容易在旁观者眼中。取决于你是否想拥有&#34;拥有&#34;代码或使用别人做的。在SO上有两个很好的答案,在快速搜索上有两个好的库。
使用预先编写的解析器的优点是,当需要一些其他功能时,它可能已经存在。