在c语言中读写文件如何查找特定名称的文件?

Python017

在c语言中读写文件如何查找特定名称的文件?,第1张

打开文件,遍历文件内容然后一个一个匹配查找就好了。

下面是一段示例代码:

#include<stdio.h>

#include<string.h>

#include<dir.h>

#define SIZE 12

void find_creat_file(char *)

int main(void)

{

char filename[SIZE]

strcpy(filename,"filename")

find_creat_file(filename)

getch()

return 0

}

void find_creat_file(char *filename)

{

struct ffblk ffblk

int done

done=findfirst("d:\\filename",&ffblk,0)

if(done==0)

return 0

else

mkdir("d:\\filename")

}

//读数

#include<stdio.h>

#include<stdlib.h>

#define N 20

struct stud

int num

int sco1

int sco2

int sco3

}stu[N]

void main()

FILE *fp

double ave

int i=0,x

if((fp=fopen("STUDENT.DAT","r"))==NULL)

printf("无法打开该文件!\n")

exit(0) 

}

else 

printf("文件打开成功!\n")

for(i=0i<Ni++){

fread(&stu[i],sizeof(struct stud),1,fp)

i++    

}

fclose(fp)

printf("请输入要查找的学生学号:\n")

scanf("%d",&x)

for(i=0i<Ni++)

if(x==stu[i].num) 

ave=(double)(stu[i].sco1+stu[i].sco2+stu[i].sco3)/3.0

break

}

else 

i++

}

if(i==10||ave<0||ave>100)  

printf("查无该生成绩!\n")

else 

printf("该生平均成绩为:%.2lf\n",ave)

}

//存数

#include<stdio.h>

#include<stdlib.h>

#define N 20

struct stud

int num

int sco1

int sco2

int sco3

}stu[N]

void main()

{

FILE *fp

int i,n

float sum1=0,sum2=0,sum3=0,ave1=0,ave2=0,ave3=0

if((fp=fopen("STUDENT.DAT","wb"))==NULL)

printf("无法打开该文件!\n")

exit(0)

}

else 

printf("文件打开成功!\n")

printf("请输入要输入的学生数:\n")

scanf("%d",&n)

for(i=0i<ni++)

printf("请输入学生学号,数学成绩,政治成绩和英语成绩:\n")

scanf("%d%d%d%d/n",&stu[i].num,&stu[i].sco1,&stu[i].sco2,&stu[i].sco3)

sum1+=stu[i].sco1

sum2+=stu[i].sco2

sum3+=stu[i].sco3

if(fwrite(&stu[i],sizeof(struct stud),1,fp)!=1)

printf("file write error\n")

}

fclose(fp)

ave1=sum1/n

ave2=sum2/n

ave3=sum3/n

printf("------------------------------------\n")

printf("NUM   Math   Prolitics   English\n")

for(i=0i<ni++)

printf("%d%7d%10d%14d\n",stu[i].num,stu[i].sco1,stu[i].sco2,stu[i].sco3)

}

printf("------------------------------------\n")

printf("对应三门成绩均分为:\n")

printf(" %7.2f%10.2f%14.2f\n",ave1,ave2,ave3)

}