void delete_student(student *L,long studentnum)
{
int flag = 0;
student * p = L,*q = p-next;
while(q)
if(q-number == studentnum)
flag = 1;
q = q-next;
break;
}
else
p = q;
q = q-next; /*下一个结点*/
if(flag == 0)
printf("删除学生失败,不存在这个学号的学生\n");
else{
printf("删除学生成功! \n ");
① 函数开始的时候这两句话没有意义
p=(stud *)malloc(sizeof(stud));
q=(stud *)malloc(sizeof(stud));
你只是用了这两个指针,为它们分配空间一是没必要,二是内存会泄露
首先要说明的是这里并不是指删除C编译器里面的文件,呵呵,如果只是要删除那些文件的话,那就很简单,直接选中文件后按delete键就可以删除了,但是我们删除那些文件干嘛?我们还要用它写程序啊,呵呵.我今天这一节要说的是,怎样使用C语言编写程序来删除文件.
在C语言中,我们可以使用remove()函数来删除指定的文件,具体语法为:
Int remove(char *filename);其中filename是一个指向字符串的指针,该字符串可以组成有效的文件名,也可以包含路径说明.如果我们要删除D盘下的ABC.txt文件,我们就可以这样写:remove("D:\ABC.txt");
#includestdio.h
void main ()
int i,k,l;
l=0;
{l=1;break;}
if l!=1
printf("%c",str1[i]);
#includemalloc.h
#includeWindows.h
#includeconio.h
#includestdlib.h
typedef struct
int data;
struct LNode *next;
}LNode;
LNode *Listinit(LNode *L)//初始化链表返还头指针
L = (LNode *)malloc(sizeof(LNode));
if (!L)return 0;
L-next = NULL;
return L;
int GetElem_L(LNode *L, int i, int *e)//取第i个元素
int j;
LNode *p;
p=L-next;j=1;
while(pji)
p=p-next;++j;
if(!p||ji) return 0;//i超过表长
*e=p-data;
return 1;
int ListInsert_L(LNode *L, int i, int e)//插入数据元素
int j = 0;
if (i-1 LinkLength(L))
while(p1!=NULL ji-1)
p1 = p1-next;
j++;
return 0;
void ClearList(LNode *L)//重置为空表
while(L-next)
p=L-next;
L-next=p-next;
free(p);
void print_link(LNode *L)//输出函数
LNode *p = L;
p = p-next;
while (p != NULL)
int ListDlete_L(LNode *L, int i, int *e)//删除L中I,并用e返回
p1 = L;
while (p1-next != NULL j i - 1)
if (p1-next == NULL || j i - 1)
int LinkLength(LNode *L)//链表的长度
int i = 0;
LNode *p = L-next;
i++;
return i;
void del()
int i=0,j,n=0;
FILE *fp;
printf("\t\t\t请输入要删除的姓名:");
scanf("%s",tname);
/*****以下内容是读取文件信息,并将文件中的信息与用户输入的姓名做比较,如果姓名相同,则删除该学生信息***/
if((fp=fopen("e:\\file1","rb"))==NULL) //打开文件file1
{printf("error!\n");exit(0);} //打开失败,报错并退出系统
while(fread(a[n],sizeof(STU),1,fp)!=0) //打开成功,每次从文件中读入一个STU结构大小的数据,并将其存入数组a[]中.直到文件内容结束.
n++;
/**该循环用于查找**/
for(i=0;in;i++)
if(strcmp(a[i].name,tname)==0) break; //找到姓名相同的学生了,结束循环.
if(i==n) //找完一遍,没找到
{ printf("\t\t\t没有找到!\n");
fclose(fp); //关闭文件file1
else //找到了同姓名的学生
/**该循环用于删除该学生信息**/
for(j=i;jn-1;j++) //从找到该学生的位置开始,依次把后面的数据前移,覆盖掉前一个
a[j]=a[j+1];
n=n-1; //学生总数减1
/****以下内容是更新文件,并提示用户删除成功****/
if((fp=fopen("e:\\file1","wb"))==NULL) //再次打开文件file1,把删除之后的信息保存到文件中
{printf("error!\n");exit(0);}
fwrite(a,sizeof(STU),n,fp); //每次往文件中写入一个学生的信息(即一个STU大小)
fclose(fp);
printf("\t\t\t删除成功!\n");
system("pause"); //页面显示诸如"按任意键继续......"
以上就是土嘎嘎小编为大家整理的c语言删除函数是相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!