为什么remove和rename没起作用?求指教
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
struct student
{
char num[11],name[9];
int normal, exam;
};
int judge_num_exist(char *filename , char *num)
{
struct student x;
FILE *fp;
fp=fopen(filename,"r");
if(fp==NULL)
{
printf("文件%s不存在!",filename);
exit(0);
}
fscanf(fp,"%s%s%d%d",x.num,x.name,&(x.normal),&(x.exam));
while(!feof(fp))
{
if(strcmp(x.num,num)==0) break;
fscanf(fp,"%s%s%d%d",x.num,x.name,&(x.normal),&(x.exam));
}
if(feof(fp))
return 0;
else
return 1;
}
void delete_record(char *filename ,char *num)
{
FILE *fp1, *fp2;
struct student y;
if(!judge_num_exist(filename,num))
printf("学号%s在文件中不存在!",num);
else
{
fp1=fopen(filename,"r");
fp2=fopen("temp.txt","w");
fscanf(fp1,"%s%s%d%d",y.num,y.name,&(y.normal),&(y.exam));
while(!feof(fp1))
{
if(strcmp(y.num, num)!=0)
fprintf(fp2,"%-11s%-9s%-4d%-4d\n",y.num,y.name,y.normal,y.exam);
fscanf(fp1,"%s%s%d%d",y.num,y.name,&(y.normal),&(y.exam));
}
fclose(fp1);
fclose(fp2);
remove("filename");//删除源文件
rename("temp.txt",fielname);//重命名文件
}
}
void test(char *filename)
{
char numstr[20],ans[2];
ans[0]='y';
while(ans[0]=='y'||ans[0]=='Y')
{
printf("请输入要删除记录的学号:");
gets(numstr);
delete_record(filename,numstr);
printf("是否继续删除(y/n);");
gets(ans);
}
}
void main()
{
test("student.txt");
}