想从一个任意类型的结构体数组生成CSV文件

mysteryboy2000 2009-03-10 09:10:51
比如,有这样的一个结构体数组ca[]
结构体类型例子:
typedef struct{
int a;
float b;
char* c;
short d;
}csv_t;

结构体是单层的,内部不会有子结构。
数据类型基本上是数字和字符串。
符合上述条件的结构体有不止一个。名字不同而已。

想定的函数名是这样的
int create_csv(void* csvstruct,int csvstruct_size, File* file)

大概如何实现请各位达人指教:)
...全文
344 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mysteryboy2000 2009-03-24
  • 打赏
  • 举报
回复
没有人帮我啊。。。

接口要怎么样改呢。。为了共通,是不是必须要有一个用来描述这个结构的共通性结构啊。。。?
arong1234 2009-03-10
  • 打赏
  • 举报
回复
在C里基本没法做,因为从void*系统得不到你关于结构的任何信息,而这些信息对于构建CSV是非常重要的,而且,从这个函数内部你也无法把void×转换为对应的结构指针,这也使得你无法真正的访问结构

在C++内这是可以做到的,做法是:
1. 建立一个纯虚基类,定义一个纯虚函数ToCSV(FILE* fp)
2. 所有的结构都继承自这个基类,并都实现这个纯虚函数,
3. 你要的这个函数的void*改成基类指针,并分别调用它的ToCSV

[Quote=引用楼主 mysteryboy2000 的帖子:]
比如,有这样的一个结构体数组ca[]
结构体类型例子:
typedef struct{
int a;
float b;
char* c;
short d;
}csv_t;

结构体是单层的,内部不会有子结构。
数据类型基本上是数字和字符串。
符合上述条件的结构体有不止一个。名字不同而已。

想定的函数名是这样的
int create_csv(void* csvstruct,int csvstruct_size, File* file)

大概如何实现请各位达人指教:)
[/Quote]
  • 打赏
  • 举报
回复
奔着csv来的,呵呵
yyyapple 2009-03-10
  • 打赏
  • 举报
回复
一条记录一行,每个字段逗号分隔
按这样的方式写入文件呗
dongpy 2009-03-10
  • 打赏
  • 举报
回复
想定的函数名是这样的
int create_csv(void* csvstruct,int csvstruct_size, File* file)

大概如何实现请各位达人指教:)
==============================================================
接口信息不够,函数create_csv无法得到结构体内部信息。

70,021

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧