⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 delete.c

📁 A simple bibliotech archive coded in C. A real exercise with fopen write and the other base functio
💻 C
字号:
#include "head.h"void  usage() { fprintf (stdout,"\n\nDelete program to the biblioteca.db file\n"                 "Usage       : Required -p position -f filename\n"                 "Flag info   : -p Position of the book\n"                 "              -f Database file to elaborate\n\n"); }int  load(char *nomefile,struct libro v[]){ FILE *f; int k=0,i=0; if((f=fopen(nomefile,"r"))==NULL){ fprintf(stdout,"[*] I can't load the database file [*]\n");                                    return -1;                                  } while (fscanf(f,"%s%s%s%d%f\n",v[k].titolo,v[k].autori,&v[k].editore,&v[k].num_pagine,&v[k].costo) !=EOF) k++; fflush(f); fclose(f); return 0;} int delete_mem(int position,struct libro v[]){bzero(v[position].titolo,MAXLENGTH);bzero(v[position].editore,MAXLENGTH);bzero(v[position].autori,MAXLENGTH);v[position].costo='\0';v[position].num_pagine='\0';return 0;}int  delete(char *nome,int position) {int i;FILE *f;if(load(nome,books)==-1) return -1;if(delete_mem(position,books)==-1) return -1;fprintf (stdout,"[*] Position %d ereased in memory [*]\n",position);if((f=fopen(nome,"r+"))==NULL){ fprintf(stdout,"[*] I can't load the database file [*]\n");                                    return -1;                                  } for (i=0;i<MAX_BOOKS;i++) fprintf (f,"%s %s %s %d %f\n", books[i].titolo,books[i].autori,books[i].editore,books[i].num_pagine,books[i].costo);fprintf (stdout,"[*] Storing your changes in your database file...[*]\n");fclose(f);return 0;}int main(int argc , char * argv[]){int position;char *nomefile;char optchar;	if (argc<4 )		{		usage();		return -1;		}	else 		{		while ((optchar=getopt(argc,argv,"p:f:"))!=EOF) 			{			switch(optchar) 				{				case 'p' :					{						position=atoi(optarg);					if (position>MAX_BOOKS || position<0)					{				        fprintf (stdout,"[*] The position is over the MAX position fixed (%d) if you want to change edit head.h [*]\n",MAX_BOOKS);                                        return -1;					}					}				break;				case 'f' :				{				nomefile=malloc(strlen(optarg));				strncpy(nomefile,optarg,strlen(optarg));				}								}			}				}			if(delete(nomefile,position)==-1) return -1;return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -