加载数据函数C语言 加载数据函数c语言怎么写

c语言fread()返回总是0

1、返回0通常是读到了文件尾。如果确认没有到文件尾,可以用ferror检查错误。

创新互联专业为企业提供沧县网站建设、沧县做网站、沧县网站设计、沧县网站制作等企业网站建设、网页设计与制作、沧县企业网站模板建站服务,10余年沧县做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

if ( ferror ( fp ) ){

printf("File read error.");

}

2、C语言中:fread是一个函数。从一个文件流中读数据,最多读取count个元素,每个元素size字节,如果调用成功返回实际读取到的元素个数,如果不成功或读到文件末尾返回 0。

函数原型:size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;

参数:

buffer 用于接收数据的内存地址

size 要读的每个数据项的字节数,单位是字节

count 要读数据项的个数,每个数据项size个字节.

stream 输入流的指针

返回值:

返回实际读取的元素个数。如果返回值与count不相同,则可能文件结尾或发生错误。从ferror和feof获取错误信息或检测是否到达文件结尾。

实例:

#includestdio.h

#includestring.h

int main(void)

{

FILE*stream;

char msg[]="this is a test";

char buf[20];

if((stream=fopen("DUMMY.FIL","w+"))==NULL)

{

fprintf(stderr,"Cannot open outputfile.\n");

return 0;

}

fwrite(msg,1,strlen(msg)+1,stream);

fseek(stream,0,SEEK_SET);

fread(buf,strlen(msg)+1,1,stream);

printf("%s\n",buf);

fclose(stream);

return0;

}

编写C语言函数insert_list完成将给定的数据插入到单链表的指定位置上

s-data=y;

写反了。

void insert_list(list *head,int i,int y)

{

list *p,*s;int j=0;

p=head;

do

{

p=p-next;

j++;

}while(ji-1);

if(j==i-1)

{

s=(list *)malloc(sizeof(list));

/* 这里写反了 y=s-data; */

s-data=y;

s-next=p-next;

p-next=s;

}

}

C语言大神。看过来,要求不高。。简单写下,最好不要使用链表和节点。完成功能就行,调试好了给我。

很久以前做的,看看能不能用?

//学生成绩管理系统

//用户名:admin 密码:admin

#includestdio.h

#includeconio.h /*清屏*/

#include stdlib.h /*显示目录*/

#includestring.h

#define MAX 1000

void menu();

void input(); /*输入数据函数*/

void sort(); /*排序数据函数*/

void display(); /*显示数据函数*/

void display1(); /*显示各科成绩函数*/

void insert(); /*插入数据函数*/

void del(); /*删除数据函数*/

void average(); /*平均值函数*/

void find(); /*查找数据函数*/

void save(); /*保存数据函数*/

void read(); /*读出数据函数*/

void del_file(); /*删除文件函数*/

void modify(); /*修改文件函数*/

int now_no=0;

struct student //定义学生信息

{

int

no;

// 学号

char name[20]; //姓名

char sex[4];

//性别

float score1; //成绩1

float score2; //成绩2

float score3; //成绩3

float sort; //排序成绩

float ave; //平均分

float sum; //总分

};

void main()

{

int h,flag1,flag2;

char name[20]="admin",password[10]="admin";

char person[20],password1[10];

printf("\t\t ******** 欢迎进入学生成绩管理系统!********\n\n");

printf("\t\t\t 用户登录\n\n");

for(h=0;h!=5;)

{

printf("\t\t\t\t 用户名:");

gets(person);

flag1=strcmp(person,name);

printf("\t\t\t\t 密码:");

gets(password1);

flag2=strcmp(password,password1);

if(flag1==0 flag2==0)

{

printf("\t\t\t\t 登陆成功!\n\n");

menu();

break;

}

else

{

printf ("\t\t\t 用户名或密码错误!\n\n");

printf("\t\t\t 请注意:您还剩%d次机会!\n\n",4-h);

h++;

}

}

if(h=5)

printf ("对不起,您输入的用户名或密码有误,已被强制退出。\n");

}

struct student stu[MAX],*p;

void menu() /*主函数*/

{

int as;

char ch;

do{

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

start: printf("\n\n\n\n\t\t\t

欢迎使用学生成绩管理系统\n");

printf("\n\n\n\n\t\t******************按任意键继续********************");

ch=getch();

}

while(!ch);

system("cls");

/*以下为功能选择模块*/

do

{

printf("\n\t\t\t\t1.录入学生信息\n\t\t\t\t2.显示学生总成绩信息\n\t\t\t\t3.对总成绩排序\n\t\t\t\t4.显示学生单科成绩排序\n\t\t\t\t5.添加学生信息\n\t\t\t\t6.删除学生信息\n\t\t\t\t7.修改学生信息\n\t\t\t\t8.查询学生信息\n\t\t\t\t9.从文件读入学生信息\n\t\t\t\t10.删除文件中学生信息\n\t\t\t\t11.保存学生信息\n\t\t\t\t12.退出\n");

printf("\t\t\t\t选择功能选项(输入所选功能前的数字):");

fflush(stdin);

/*可用可不用,用于清除缓存防止下次用scanf输入时出现错误*/

scanf("%d",as);

switch(as)

{

case 1:system("cls");

input();

break;

case 2:system("cls");

display();

break;

case 3:system("cls");

sort();

break;

case 4:system("cls");

display1();

break;

case 5:system("cls");

insert();

break;

case 6:system("cls");

del();

break;

case 7:system("cls");

modify();

break;

case 8:system("cls");

find();

break;

case 9:system("cls");

read();

break;

case 10:system("cls");

del_file();

break;

case 11:system("cls");

save();

break;

case 12:system("exit");

exit(0);

default:system("cls");

goto start;

}

}while(1); /*while(1),1表示真,所以while(1)表示永远循环下去*/

/*至此功能选择模块结束*/

}

void input() /*学生信息录入模块*/

{

inti=0;

char ch;

do

{

printf("\t\t\t\t1.录入学生信息\n输入第%d个学生的信息\n",i+1);

printf("\n输入8位的学生学号:");

scanf("%u",stu[i].no);

fflush(stdin);

printf("\n输入学生姓名:");

fflush(stdin);

gets(stu[i].name);

printf("\n输入学生性别:");

fflush(stdin);

gets(stu[i].sex);

printf("\n输入学生成绩1:");

scanf("%f",stu[i].score1);

printf("\n输入学生成绩2:");

fflush(stdin);

scanf("%f",stu[i].score2);

printf("\n输入学生成绩3:");

fflush(stdin);

scanf("%f",stu[i].score3);

printf("\n\n");

i++;

now_no=i;

printf("是否继续输入?(Y/N)");

fflush(stdin);

ch=getch();

system("cls");

}

while(ch!='n'ch!='N');

system("cls");

}

void sort() /*排序数据函数*/

{

struct student temp;

int i,j;

average();

for(i=1;inow_no;i++)

{

for(j=1;j=now_no-i;j++)

{

if(stu[j-1].avestu[j].ave)

{

temp=stu[j];

stu[j]=stu[j-1];

stu[j-1]=temp;

}

}

}

printf("排序已完成进入功能2可进行显示\n");

system("pause");

system("cls");

}

void sort1() /*排序数据函数*/

{

struct student temp;

inti,j;

for(i=1;inow_no;i++)

{

for(j=1;j=now_no-i;j++)

{

if(stu[j-1].score1stu[j].score1)

{

temp=stu[j];

stu[j]=stu[j-1];

stu[j-1]=temp;

}

}

}

}

void sort2() /*排序数据函数*/

{

struct student temp;

int i,j;

for(i=1;inow_no;i++)

{

for(j=1;j=now_no-i;j++)

{

if(stu[j-1].score2stu[j].score2)

{

temp=stu[j];

stu[j]=stu[j-1];

stu[j-1]=temp;

}

}

}

}

void sort3() /*排序数据函数*/

{

struct student temp;

int i,j;

for(i=1;inow_no;i++)

{

for(j=1;j=now_no-i;j++)

{

if(stu[j-1].score3stu[j].score3)

{

temp=stu[j];

stu[j]=stu[j-1];

stu[j-1]=temp;

}

}

}

}

void display() /*显示数据函数*/

{

inti;

char as;

average();

do

{

printf("\t\t\t班级学生信息列表\n");

printf("\t学号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");

for(i=0;inow_nostu[i].name[0];i++)

printf("\t%u%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);

printf("\t\t\t按任意键返回主菜单");

fflush(stdin);

as=getch();

}

while(!as);

system("cls");

}

void display1() /*显示数据函数*/

{

inti;

char as;

do

{

printf("\t\t\t班级学生score1成绩排序\n");

printf("\t学号\t姓名\t性别\t成绩1\n");

sort1();

for(i=0;inow_nostu[i].name[0];i++)

printf("\t%u%s\t%s\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1);

printf("\t\t\t班级学生score2成绩排序\n");

printf("\t学号\t姓名\t性别\t成绩2\n");

sort2();

for(i=0;inow_nostu[i].name[0];i++)

printf("\t%u%s\t%s\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score2);

printf("\t\t\t班级学生score3成绩排序\n");

printf("\t学号\t姓名\t性别\t成绩3\n");

sort3();

for(i=0;inow_nostu[i].name[0];i++)

printf("\t%u%s\t%s\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score3);

printf("\t\t\t按任意键返回主菜单");

fflush(stdin);

as=getch();

}

while(!as);

system("cls");

}

void insert() /*插入数据函数*/

{

char ch;

do

{

printf("\n\t\t输入新插入学生信息\n");

printf("\n输入学生学号:");

scanf("%u",stu[now_no].no);

fflush(stdin);

printf("\n输入学生姓名:");

fflush(stdin);

gets(stu[now_no].name);

printf("\n输入学生性别:");

fflush(stdin);

gets(stu[now_no].sex);

printf("\n输入学生成绩1:");

fflush(stdin);

scanf("%f",stu[now_no].score1);

printf("\n输入学生成绩2:");

fflush(stdin);

scanf("%f",stu[now_no].score2);

printf("\n输入学生成绩3:");

fflush(stdin);

scanf("%f",stu[now_no].score3);

printf("\n\n");

now_no=now_no+1;

sort();

printf("是否继续输入?(Y/N)");

fflush(stdin);

ch=getch();

system("cls");

}

while(ch!='n'ch!='N');

}

void del() /*删除数据函数*/

{unsigned long inum;

int i;

printf("输入要删除学生的学号:");

fflush(stdin);

scanf("%u",inum);

for(i=0;inow_no;i++)

{

if(stu[i].no==inum)

{

if(i==now_no)now_no-=1;

else

{

stu[i]=stu[now_no-1];

now_no-=1;

}

sort();

break;

}

}

system("cls");

}

void save() /*保存数据函数*/

{

FILE *fp;

int i;

char filepath[20];

printf("输入要保存的文件路径:");

fflush(stdin);

gets(filepath);

if((fp=fopen(filepath,"w"))==NULL)

{

printf("\n保存失败!");

exit(0);

}

for(i=0;inow_no;i++)

{

stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;

stu[i].ave=stu[i].sum/3;

fprintf(fp,"\t%u%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);

}

fclose(fp);

printf("学生信息已保存在%s中!\n",filepath);

system("pause");

system("cls");

}

void find() /*查询函数*/

{

int i;

charstr[20],as;

do

{

printf("输入要查询的学生姓名:");

fflush(stdin);

gets(str);

for(i=0;inow_no;i++)

if(!strcmp(stu[i].name,str))

{

printf("\t学号\t\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");

printf("\t%u\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);

}

printf("\t\t\t按任意键返回主菜单");

fflush(stdin);

as=getch();

}

while(!as);

system("cls");

}

void average() /*求平均数*/

{

inti;

for(i=0;inow_no;i++)

{

stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;

stu[i].ave=stu[i].sum/3;

}

}

void modify() /*修改数据函数*/

{

inti;

char str[20];

printf("输入要修改的学生姓名:");

fflush(stdin);

gets(str);

for(i=0;inow_no;i++)

{

if(!strcmp(stu[i].name,str))

{

system("cls");

printf("\n\t\t输入修改后学生信息\n");

printf("\n输入学生学号:");

fflush(stdin);

scanf("%u",stu[i].no);

printf("\n输入学生性别:");

fflush(stdin);

gets(stu[i].sex);

printf("\n输入学生成绩1:");

fflush(stdin);

scanf("%f",stu[i].score1);

printf("\n输入学生成绩2:");

fflush(stdin);

scanf("%f",stu[i].score2);

printf("\n输入学生成绩3:");

fflush(stdin);

scanf("%f",stu[i].score3);

printf("\n\n");

sort();

break;

}

}

system("cls");

}

void read()

{

FILE *fp;

inti;

char filepath[20];

printf("输入要读入的文件路径:");

fflush(stdin);

gets(filepath);

if((fp=fopen(filepath,"r"))==NULL)

{

printf("找不到%s文件!\n",filepath);

system("pause");

exit(0);

}

now_no=0;

for(i=0;iMAX!feof(fp);i++)

{

fscanf(fp,"\t%d\t%s\t%s\t%f\t%f\t%f\t%f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);

now_no++;

}

fclose(fp);

printf("保存的在文件%s中的所有信息已经读入!\n",filepath);

system("pause"); /*按任意键继续*/

system("cls");

}

void del_file()

{

FILE*fp;

charfilepath[20];

printf("输入要删除的文件路径:");

fflush(stdin);

gets(filepath);

fp=fopen(filepath,"w");

fclose(fp);

printf("保存的在文件%s中的所有信息已经删除!\n",filepath);

system("pause");

system("cls");

}


当前文章:加载数据函数C语言 加载数据函数c语言怎么写
转载源于:http://myzitong.com/article/doghppo.html