该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include

#define filename "sss.dat"

typedef struct

{

int no;

char *name;

int math;

}info;

typedef struct

{

info *link;

int length;

int maxsize;

}head;

void init(head*);

void menu(head*);

void listInfo(head *head);

void add(head *head,info in);

void addinfo(head *head);

void main()

{

head head;

head.length=0;

head.maxsize=0;

init(&head);

menu(&head);

}

void init(head *in)

{

FILE *fp;

info val;

fp=fopen(filename,"rt");

if(fp==NULL)

{

printf("文件读取失败!");

fp=fopen(filename,"at");

if(fp==NULL)

{

printf("文件创建失败!\n");

}

fclose(fp);

}

fp=fopen(filename,"rt");

rewind(fp);

while(feof(fp)!= 0){

//val=(info)malloc(sizeof(info));

fread(&val,sizeof(info),1,fp);

if(&val)

add(in,val);

else{

printf("error");

}

}

fclose(fp);

}

void write(head *in)

{

FILE *fp;

int i;

info temp;

fp=fopen(filename,"at");

if(fp==NULL)

{

printf("文件创建失败!");

}

rewind(fp);

for(i=0;ilength);i++){

temp=in->link[i];

fwrite(&temp,sizeof(info),1,fp);

//printf("%d",i);

}

fclose(fp);

menu(in);

}

void add(head *head,info in)

{

if(head->length==head->maxsize){

head->link=(info *)malloc((head->maxsize+10)*sizeof(info));

head->maxsize+=10;

}

head->link[head->length]=in;

head->length++;

}

void menu(head *head)

{

int op;

printf("\t\t*********************************\n");

printf("\t\t*      学生信息管理系统\t\t*\n");

printf("\t\t*\t\t\t\t*\n");

printf("\t\t*  1.添加学生信息\t\t*\n");

printf("\t\t*  2.查看学生信息\t\t*\n");

printf("\t\t*  7.保存信息\t\t\t*\n");

printf("\t\t*  8.退出\t\t\t*\n");

printf("\t\t*********************************\n");

scanf("%d",&op);

getchar();

switch(op){

case 1:

{

addinfo(head);

break;

}

case 2:

{

listInfo(head);

break;

}

case 7:

{

write(head);

break;

}

case 8:

{

exit(0);

break;

}

default:

{

menu(head);

break;

}

}

}

void addinfo(head *head)

{char *name=(char *)malloc(sizeof(char));

info *in=(info *)malloc(sizeof(info));

printf("请输入学号:");

scanf("%d",&(in->no));

printf("请输入姓名:");

scanf("%s",name);

in->name=name;

printf("请输入分数:");

scanf("%d",&(in->math));

add(head,*in);

menu(head);

}

void listInfo(head *head)

{

int i=0;

for(;ilength;i++){

printf("\t%d\n",head->link[i].no);

}

menu(head);

}

为什么调用init方法后head的link还是空啊

c语言errorinfo结构体,c结构体与文件相关推荐

  1. c 结构体 不允许使用不完整的类型_C语言必学知识点 quot;结构体quot;详细解析!...

    结构体是经常用到的数据类型,使用频率不亚于指针,所以需要重视,不过用法非常简单. 一.什么是结构体 ☀ 在前面的时候已经介绍了C语言中的数组,用法跟其他语言差不多.当一个整体由多个数据构成时,我们可以 ...

  2. Go语言实例化结构体——为结构体分配内存并初始化

    转自: http://c.biancheng.net/view/66.html 结构体的定义只是一种内存布局的描述,只有当结构体实例化时,才会真正地分配内存.因此必须在定义结构体并实例化后才能使用结构 ...

  3. C语言 匿名联合体和匿名结构体

    C语言 匿名联合体和匿名结构体 匿名联合体和匿名结构体顾名思义,就是没有名字的联合体和结构体,没有名字哪怎么用?拿来用? 在嵌入式数据通信里面,大部分都是使用联合体,将有实际意义的结构体和字节数组互相 ...

  4. C语言结构体和结构体数组示例 - Win32窗口程序演示

    C语言结构体和结构体数组的使用: /* C结构体和结构体数组示例,by bobo */#include <windows.h>LRESULT CALLBACK WndProc (HWND, ...

  5. C语言中函数如何返回结构体?

    //#include "stdafx.h"//If the vc++6.0, with this line. #include "stdio.h" #inclu ...

  6. 遍历结构体_三菱ST语言编程(3)——结构体变量

    上篇文章介绍了数组,是一组相同类型数据的列表,那么不同类型的数据能否组合到一起用一个标签表示呢?答案当然是可以的,而实现这个功能的就是结构体(struct). 建立结构体 在三菱结构化编程的界面中左侧 ...

  7. C语言之结构体和共用体

    C语言之结构体和共用体 算上这篇笔记加上之前的四篇笔记,C语言基础我们也就告一段落了,对于刚刚接触c语言的童鞋们来说,这些以及足够了,稍后我会发布数据结构,对于想要深入学习的童鞋可以继续关注.本人也算 ...

  8. C语言中的结构体,结构体中数组初始化与赋值

    最近写c语言中的结构体遇到了些问题,从网上找了些资料如下: 结构体是连续存储的,但由于结构体中成员类型各异,所以会存在内存对齐问题,也就是内存里面会有空档,具体的对齐方式这里 暂不讨论: 1.结构体的 ...

  9. C语言学生信息管理系统(结构体数组,文件)

    C语言学生信息管理系统(结构体数组,文件) 这是初学时写的一个程序,比较菜,不喜勿喷.在一个结构体里定义结构体内所有的信息(如果信息也需要分类则可以再定义一个结构体并在当前结构体内声明,我的这个代码在 ...

  10. 【C语言】结构体、共用体、位域

    结构体 1. 结构体的声明方法 struct struct_name {data_type member1;data_type member2;.. }; 这是其中一种声明方式~ 2.定义一个结构体变 ...

最新文章

  1. Keymob:移动广告的优化工具
  2. 基于托管C++的增删改查及异步回调小程序
  3. 采用邻接表存储结构,编写一个判别无向图中任意给定的两个顶点之间是否存在一条长度为k的简单路径的算法。
  4. 【BLE】TLSR8258开发记录之9--IIC驱动TMP102
  5. 杭电1260java实现
  6. 【热点】因这个配置错误导致全球互联网流量下降了 3.5%
  7. brew 更换国内源(镜像)
  8. Ubuntu14.04无法在var/www内新建文档
  9. 如何将页脚固定在页面底部
  10. 巧解C语言运算符的优先级和结合性
  11. mac下安装前端模板引擎Jinja2
  12. 百度地图离线sdk java_百度地图SDK java.lang.UnsatisfiedLinkError: Couldn't load BaiduMapSDK...
  13. java压缩传输_简单实现字符串的压缩,减轻传输压力
  14. 嵌入式MicroFlighter 之STM32F103学习——编写第一个STM32程序
  15. 网管系统开发经验谈(二)
  16. 解密javascript模块载入器require.js
  17. vim配置:高亮所在的行和列
  18. JQuery(1)——JQuery如何读
  19. 《小QQ 大帝国 马化腾传奇》熊江
  20. 关于猜数字游戏以及关机指令

热门文章

  1. SAP系统里的胖接口Fat interface
  2. SAP ABAP Netweaver里的胖接口(fat interface)
  3. SAP CRM IBASE structure的读取逻辑
  4. SAP CRM WebClient UI根据扩展字段搜索出结果的实现原理
  5. GM6 pageset - DB get scenario
  6. Commit request failed Commit failed. Ref must be HEAD and is HEAD
  7. 在SAP C4C创建销售订单时如何绑定创建者的微信open id
  8. open external url via transaction launcher sina baidu google web
  9. 利用SMW01分析BDOC错误
  10. 打印product所assign的product category和hierarchy的小工具