游戏筑基开发之利用文件函数读出文件数据及处理(反序列化)(C语言)

文件格式如下(txt文件):

TIPS:最后一行,即50行末尾有一个\n(换行符)

具体实现如下:

可优化,思路仅供参考。

Ini.h

#ifndef INI_H_
#define INI_H_
#define N 1024typedef struct tagIniNode
{int value[N];//将字符型转化为int型保存
}TIniNode, *PTIniNode;typedef struct tagIni
{//没有必要用到二级指针,因为我们已知存储类型(且均为相同类型)//而二级指针存储地址,可以存储不同的数据类型PTIniNode pNodes;//在多个文件情况下,用于存储多个节点int len;//文件个数int lenMax;//最大存储文件个数长度
}TIni, *PTIni;//初始化配置文件
PTIni InitIni();//反向初始化
void UnInitIni(PTIni *ppIni);//从文件中加载存档文件(反序列化)
void LoadIni(PTIni pIni, const char* const pPath);
#endif // !INI_H_

Ini.c

#include "Ini.h"
#include <stdio.h>
#include <string.h>//初始化配置文件
PTIni InitIni()
{PTIni pIni = malloc(sizeof(TIni));pIni->len = 0;pIni->lenMax = 100;pIni->pNodes = malloc(sizeof(TIniNode) * pIni->lenMax);return pIni;
}//反向初始化
void UnInitIni(PTIni *ppIni)
{if (*ppIni == NULL)return NULL;free((*ppIni)->pNodes);free(*ppIni);
}//从文件中加载存档文件(反序列化)
void LoadIni(PTIni pIni, const char* const pPath)
{FILE *pFile = fopen(pPath, "r");if (NULL == pFile){printf("打开文件失败!");return;}while (0 == feof(pFile)){char buffer[1024] = { 0 };fgets(buffer, 1024, pFile);int strLen = strlen(buffer);if (strLen == 0){fclose(pFile);return;}int temp = 0;memset(pIni->pNodes[pIni->len].value, -1, sizeof(int) * 1024);for (int i = 0, j = 0; i < strLen; i++){if (buffer[i] != ';' && buffer[i] != '\n')temp = temp * 10 + (buffer[i] - 48);else if (';' == buffer[i]){//取出的实体暂时保存于value二维数组内,相当于一个中间容器,起暂存作用pIni->pNodes[pIni->len].value[j++] = temp;temp = 0;}}pIni->len++;}fclose(pFile);pFile = NULL;
}

游戏筑基开发之利用文件函数读出文件数据及处理(反序列化)(C语言)相关推荐

  1. php中glob怎么用,如何在php中利用glob函数对文件进行遍历

    如何在php中利用glob函数对文件进行遍历 发布时间:2020-12-11 16:02:47 来源:亿速云 阅读:76 作者:Leah 如何在php中利用glob函数对文件进行遍历?相信很多没有经验 ...

  2. c语言读取文件字节数,怎么在C语言中利用fstat函数获取文件的大小

    怎么在C语言中利用fstat函数获取文件的大小 发布时间:2021-01-22 17:03:17 来源:亿速云 阅读:110 作者:Leah 怎么在C语言中利用fstat函数获取文件的大小?针对这个问 ...

  3. php中readfile的用法,怎么在php中利用readfile() 函数设置文件的大小

    怎么在php中利用readfile() 函数设置文件的大小 发布时间:2020-12-18 15:51:48 来源:亿速云 阅读:77 作者:Leah 本篇文章为大家展示了怎么在php中利用readf ...

  4. 学会用API函数读出内存数据

    CheatEngine6.2下载地址 http://download.csdn.net/detail/zang141588761/9600391 将用CE来找出对对碰游戏 坐位号基址,棋盘数组基址并把 ...

  5. python文件函数_python文件和文件夹复制函数

    本文实例为大家分享了python文件和文件夹复制函数,供大家参考,具体内容如下 文件复制函数 代码和注释如下: # 文件复制函数 def copy_file(file1,file2): ''' 将文件 ...

  6. python 文件函数_python文件操作及函数学习

    文件操作 文件读 f = open('a.txt', encoding='utf-8', mode='r')  #只读方式打开文件 data = f.read()  #read函数读取所有文件内容,光 ...

  7. 处理DataFrame数据——利用Groupby函数分类汇总数据并转为矩阵

    问题 我的手头有35万条数据,包含三个属性:时间.数量和ID.我现在需要以时间.ID分类,对数量进行求和统计(分类汇总):然后以time列为行(x轴),ID为列(y轴),num为值建立矩阵. 读取数据 ...

  8. python游戏后端开发_利用python如何实现猫捉老鼠小游戏

    这篇文章我们来讲一下在网站建设中,利用python如何实现猫捉老鼠小游戏.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. python实现猫捉老鼠小游戏 首界面 开始游戏界面 ...

  9. 利用dbms_backup_restore函数来恢复数据文件

    本实验对数据文件丢失,控制文件丢失,但是RMAN的备份信息和备份日志存在的时候使用. 控制文件的丢失恢复参看http://luoping.blog.51cto.com/534596/294164. 下 ...

  10. go 调用其他文件函数_一篇文章让你了解Go语言中方法Methods的使用内幕

    概述 Go语言中的方法只不过是一个带有接收器的函数.接收器是某个特定类型(如struct)的实例,或是任何其他自定义类型的实例.所以基本上,当你把函数附加到类型上时,该函数就成为这个类型的一个方法.方 ...

最新文章

  1. [转] WINCC教学视频
  2. react-router的基础知识
  3. Winform应用程序实现通用遮罩层二
  4. 计算机网络(网络层,运输层和应用层的一些tips)
  5. sqlite3在ubuntu的终端下面的操作
  6. Android重点笔记,安卓listview 懒加载的实现笔记
  7. [攻防世界][CTF][2020][MISC] 攻防世界 MISC writeup
  8. Hive环境搭建(完整版)-配置
  9. Pytorch 反向传播实例,梯度下降
  10. 用于实现 Web 服务的 SOA 编程模型,第 10 部分: SOA 用户角色
  11. 解读 2018之Go语言篇(上):为什么Go语言越来越热?
  12. 个人简历怎么写怎么做(还有怎么培养无私奉献的精神--模板)
  13. [个人笔记] 关于linux的常见问题合集
  14. i.MX6 交叉编译zlib、yasm、xvidcore、libpng、x264、jpegsrc、ffmpeg
  15. 【剑指Offer】输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
  16. android室内地图,室内位置-与地图交互-开发指南-Android 室内地图SDK | 高德地图API...
  17. ssh登陆忽略known_hosts文件(ssh 登陆提示Host key verification failed.)
  18. 乔治城大学计算机专业,Georgetown的Computer Science「乔治城大学计算机科学系」
  19. 云南一脸通行业解决方案、钉钉智慧食堂、智慧餐厅、智慧工地解决方案
  20. 生活随笔:心血来潮的今天

热门文章

  1. 【论文串烧】基于特定实体的文本情感分类总结(PART I)
  2. 征稿通知 | 2019亚洲语言处理国际大会(IALP2019)开始征稿
  3. 初试Spring Boot:构建第一个Web程序
  4. 产品管理工作的文档管理
  5. 创业在微软——微软亚洲工程院成长启示(双色)
  6. 《Java程序员职场全攻略:从小工到专家》连载九:散兵游勇还是团队作战
  7. 揭秘孙小小《PPT演示之道》
  8. 3.2. tensorflow2实现Wileoxon秩和检验法(下) ——python实战
  9. caffe 利用Python API做分类预测,以及特征的可视化
  10. 7-9 一元多项式的乘法与加法运算 (20 分)