拿到了一个需求:前台请求数据批量导出,后台需要通过数据库将数据塞到csv格式的表格里然后给前台下载
对于白二白这种憨憨萌新来说脑袋都有点不够用了。
架构使用Nginx+fastcgi,接口写了一天,需求完成了,趁着下班前的这点时间谢谢简单的csv文件创建好了。
在此特别感谢https://blog.csdn.net/iefenghao/article/details/81272263和https://www.runoob.com/cprogramming/c-function-fwrite.html
本身数据库的数据是不带header,所以这里写个简单的头,懂得都懂。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct person
{
char name[20];
char sex[10];
char age[10];
}person;
int main()
{
person sperson[3] = {
{"a","男","1"},
{"b","女","2"},
{"c","秀吉","3"}
}
FILE *fp;
if(NULL == (fp = fopen("test.txt","w+"))){
printf("创建文件失败");
return 0;
}
char str[] = "姓名,性别,年龄,";
fwrite(str,sizeof(str),1,fp);
fwrite("\n",1,1,fp);
for(int i = 0; i < 3; i++){
fwrite(sperson[i]->name,sizeof(sperson[i]->name),1,fp);
fwrite(",",1,1,fp);
fwrite(sperson[i]->sex,sizeof(sperson[i]->sex),1,fp);
fwrite(",",1,1,fp);
fwrite(sperson[i]->age,sizeof(sperson[i]->age),1,fp);
fwrite("\n",1,1,fp);
}
fclose(fp);
rename("test.txt","test.csv");
return 0;
}
要是用到数据库就加上申请内存空间和释放内存空间啥的就行
用到数据库就是用二级指针创建一个结构体数组,然后用这个数组装n个单条数据
另外提一下,在编译之后不报错,但是使用的时候挂掉了,可以用gdb调试core文件找出错点,非常关键的操作。
版权声明:本文为qq_43246158原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。