?? delete.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 + -