日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言errorinfo结构体,c结构体与文件

發布時間:2023/12/19 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言errorinfo结构体,c结构体与文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

#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结构体与文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。