C语言学生证管理系统怎样将数据存入文件中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言学生证管理系统怎样将数据存入文件中?相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#define SIZE sizeof(student)
void anzhuang();
void jindutiao();
void shanchu();
void cunru();
void gongneng();
void chakan();
void xiugai();
void shanchu();
void tuichu();
typedef struct student

char name[10];
char sex[10];
char nation[10];
int birthday;
int num;
char zhuanye[10];
student * next;
xinxi;
int n;
//链表的删除
xinxi * del(student * head,long num)

student * p1,* p2;
if(head==NULL)

printf("\nlist null!\n");
return (head);

p1=head;
while(num!=p1->num && p1->next!=NULL)

p2=p1;
p1=p1->next;

if(num==p1->num)

if(p1==head)
head=p1->next;
else
p2->next=p1->next;
printf("delete:%ld\n",num);
n=n-1;

else
printf("找不到该学生信息\n");

//链表的创建
student * creat(void)

int n;
student * head;
student * p1,* p2;
n=0;
p1=p2=(student * ) malloc(SIZE);
printf("请输入学生姓名 学生性别 学生名族 出生年月日 学号 专业\n");
scanf("%s,%s,%s,%ld,%ld,%s,",&p1->name,&p1->sex,&p1->birthday,&p1->num,&p1->zhuanye);
head=NULL;
while(p1->name!=NULL)

n=n+1;
if(n==1)head=p1;
else
p2->next=p1;
p2=p1;
p1=(xinxi *)malloc(SIZE);
scanf("%s,%s,%s,%ld,%ld,%s,",&p1->name,&p1->sex,&p1->birthday,&p1->num,&p1->zhuanye);

p2->next=NULL;
return (head);

int main()

anzhuang();
gongneng();
return 0;

void anzhuang()

int i;
for(i=0;i<100;i++)

printf("\n\n\t\t\t ************************\n");
printf("\n\t\t\t 欢迎来到学生证管理系统\n");
printf("\n\t\t\t *******************\n");
jindutiao();
printf("\n\t\t\t **************\n");
Sleep(50);
system("cls");


void jindutiao()

static int i=0;
printf("\n\t\t\t\t 正在进入请稍等 %d%%\n",i);
i++;

void gongneng()

int i;
printf("\n请选择以下功能\n\n\n\n");
printf("\t1:存入学生证信息\n");
printf("\t2:查看学生证信息\n");
printf("\t3:修改学生证信息\n");
printf("\t4:删除学生证信息\n");
printf("\t5:退出\n");
scanf("%d",&i);
switch(i)

case 1:cunru();Sleep(10000);system("cls");gongneng();break;
case 4:shanchu();Sleep(1000);system("cls");gongneng();break;
case 5:tuichu();
default:printf("输入错误,请重新输入\n");system("cls");gongneng();


student * pt;
void cunru ()

printf("开始存入信息,存入姓名为NULL即退出\n");
pt=creat();

void shanchu()

int a;
printf("请输入该删除学生的学号\n");
scanf("%d",&a);
del(pt,a);

void tuichu()

printf("程序已退出\n");
exit(0);


求大神指教、、、、

参考技术A 遍历学生链表,用fwrite函数写入文件追问

可不可以详细点、、、呢,输入数据 为啥停止不了呢。。。

追答

struct student *p = head->next;
FILE *fp;
fp = fopen("stu", "wb");
while(p != NULL)

fwrite(&temp, sizeof(struct student), 1, fp);
p = p->next;


fclose(fp);

以上是关于C语言学生证管理系统怎样将数据存入文件中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据存入到一个结构体中

C 语言文件操作 ( 学生管理系统 | 命令行接收数据填充结构体 | 结构体写出到文件中 | 查询文件中的结构体数据 )

C 语言文件操作 ( 学生管理系统 | 插入数据 | 查询数据 | 删除数据 )

怎样用C语言写学生成绩管理系统?

C#怎样将数组作为文件流保存起来

怎样用C语言读取txt文件中的二进制数据并转为一维数组