答案肯定是可以的,一个简单的实现方法如下。
第一步定义一个结构体,成员如下:
struct Data
{
char type; //假设i-int, d-double, c-char建议用缩写便于后面判断
void *ptr;
struct Data *next;
}
第二步建立结构体链表,打开文件读取文件内容,如果文件不规律可以读取每行,自己这个扫描函数;像数据库它是规律的,数据类型后面跟着值,首先读取数据类型,然后根据数据类型用malloc申请适当内存存放数据,申请回来的内存赋值给ptr,文件值写入ptr指向的内存。按这种方式读取完全部。返回链表头head。
第三步使用值,首先使用switch case判断type类型,假设类型为i整形,那值为*((int)(ptr))。其它的类似就可以了。