1.结构体保存到文本

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 3 typedef struct student{
char name[]; //最好用数组,方便,用指针到时写入到文本不好操作
int age;
int score;
}STU;
int size = sizeof(STU);
void write(STU *);
void input(STU *);
void output(STU *);
//void clean(STU *); void main(void)
{
STU kang[max];
input(kang);
output(kang);
write(kang);
clean(kang);
} void input(STU * student)
{
char temp[];
int i=;
while(i<max && fgets(temp,sizeof(temp),stdin)!=NULL && temp[]!='\0' )
{
//student->name = (char *) malloc(strlen(temp)+1);
strcpy(student->name,temp);
puts("age ?");
scanf("%d",&student->age);
puts("score ?");
scanf("%d",&student->score); while(getchar() != '\n')
continue; student++;
i++;
if(i<max)
puts("next name");
} } void output(STU * student)
{
int i=;
while(i<max)
{
printf("%d---%s---%d---%d\n",i,student->name,student->age,student->score);
i++;
student++;
} } void write(STU * student)
{
FILE *fp;
int i=;
if( (fp=fopen("data.txt","w+b")) == NULL )
{
puts("open error");
} while(i<max)
{
fwrite(student,size,,fp);
i++;student++;
} fclose(fp); } void clean(STU * student)
{
int i=;
while(i<max)
{
free(student->name);
i++;
student++;
}
}

2.读取结构体

 #include <stdio.h>
#include <stdlib.h>
#define max 3 typedef struct student{
char name[];
int age;
int score;
}STU;
int size = sizeof(STU);
void read(STU *); void main(void)
{
STU kang[max];
read(kang); int i=;
while(i<max)
{
printf("%s---%d---%d\n",kang[i].name,kang[i].age,kang[i].score);
i++;
} } void read(STU * student)
{
FILE *fp;
int i=;
if( (fp=fopen("data.txt","a+b")) == NULL )
{
puts("open error");
exit();
}
rewind(fp);
while(i<max)
{
fread(student,size,,fp);
student++;i++;
} fclose(fp); }

c 结构体读取与保存的更多相关文章

  1. c语言学习之基础知识点介绍(十二):结构体的介绍

    一.结构体的介绍 /* 语法: struct 结构体名{ 成员列表; }; 切记切记有分号! 说明:成员列表就是指你要保存哪些类型的数据. 注意:上面的语法只是定义一个新的类型,而这个类型叫做结构体类 ...

  2. 你好,C++(14)如何描述“一个名叫陈良乔,年龄33岁,身高173厘米,体重61.5千克的男人”——3.8 用结构体类型描述复杂的事物

    3.8  用结构体类型描述复杂的事物 利用C++本身所提供的基本数据类型所定义的变量,只能表达一些简单的事物.比如我们可以用int类型定义nAge变量表示人的年龄,用string类型定义strName ...

  3. IPv4地址结构体sockaddr_in详解

    sockaddr_in结构体定义 struct sockaddr_in { sa_family_t sin_family; //地址族(Address Family) uint16_t sin_por ...

  4. 用结构体解析Pascal字符串

    来源:https://www.cnblogs.com/qiuyuwutong/p/8708844.html 1.什么是柔性数组? 柔性数组既数组大小待定的数组, C语言中结构体的最后一个元素可以是大小 ...

  5. C# 结构体和List<T>类型数据转Json数据保存和读取

    C#  结构体和List<T>类型数据转Json数据保存和读取 一.结构体转Json public struct FaceLibrary { public string face_name ...

  6. 字节序转换与结构体位域(bit field)值的读取

    最近又遇到了几年前遇到的问题,标记一下. 对于跨字节位域(bit field)而言,如果数据传输前后环境的字节序不同(LE->BE,BE->LE),简单地调用(ntohs/ntohl/ht ...

  7. qsettings 保存自定义结构体(QVariant与自定义结构体相互转化)

    参考博文:QVariant与自定义数据类型转换的方法. 这里摘取其关键内容: 1.将自定义数据类型使用Q_DECLARE_METATYPE宏进行声明,便于编译器识别. 2.在插入对象的时候,声明QVa ...

  8. c语言学习之基础知识点介绍(十七):写入读取结构体、数组、结构体数组

    一.结构体的写入和读取 //写入结构体 FILE *fp = fopen("/Users/ios/Desktop/1.data", "w"); if (fp) ...

  9. C语言 结构体数组保存到二进制文件中

    在项目中我定义了一个结构体数组,头文件如下: C/C++ code   ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...

随机推荐

  1. windows系统下系统变量path误删恢复方法

    每台计算机安装程序不同,环境变量path会有不同,若误删了环境变量path,可以如下完美解决.   Win+R 输入regedit打开注册表(开始-运行里输入regedit) 找到  HKEY_LOC ...

  2. css position:absolute align center bottom

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. POJ1035_Spell checker_KEY

    题目传送门 一道暴力可以过的水题.(直接暴力模拟的那种) 但是我打Trie练练模板,但是TMD因为数组开太小卡了好久. code: #include <cstdio> #include & ...

  4. OpenCV参考手册之Mat类详解

    OpenCV参考手册之Mat类详解(一) OpenCV参考手册之Mat类详解(二) OpenCV参考手册之Mat类详解(三)

  5. ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(零) 前言(内容已过期,阅读请慎重)

    2018-09-19 更新 :现在已经更新ASP.NET Core Middleware版本.对.NET Core SignalR感兴趣的朋友移步:https://github.com/fanpan2 ...

  6. 八月暑期福利,10本Python热门书籍免费送!

    八月第一周,网易云社区联合博文视点为大家带来Python专场送书福利,10本关于Python的书籍内容涉及Python入门.绝技.开发.数据分析.深度学习.量化投资等.以下为书籍简介,送书福利请见文末 ...

  7. 自己做的一个固定大小对象内存池,效率大概为原始的new/delete的2倍

    提升不高,不过好处是可以多次申请小对象,一次释放.(只适应于无动态申请资源的class) vs2012测试情况如下: // CHchFixLenMemPool.h #pragma once #ifnd ...

  8. VirtualBox虚拟机上安装windows7系统

    1.下载Windows7的镜像文件 http://www.xitongcheng.com/jiaocheng/win7_article_24156.html 2.在虚拟机上安装Windows7 htt ...

  9. Unity利用Share SDK实现QQ、微信及微博第三方登录及定制内容分享(附代码)

    最近因为公司的项目需要添加一些实用性的功能,需要添加第三方登录及分享,采用的是Mob的SDK,可以先到其官网下载对应的SDK 点击这里,为了方便后期进行数据统计和分析,所以可以先添加一个应用,添加成功 ...

  10. TW实习日记:第七天

    今天早上,将项目的两个企业微信接口:登录和应用消息发送接口,做了最后的收尾工作,把目前我能解决的问题算是基本都解决了.早上还开了一个会,大意是组长封装了许多组件叫我们使用,在不断的使用中打磨组件的可用 ...