#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct book{//book 구조체
long long int ISBN;
int booknum;
char bookname[100];
char from[100];
char composer[50];
char have[200];
char can;
struct book * blink;
}Book;
void del_book();
Book * Bookarrange(){ //book linkedlist 짜기
Book * bhead=NULL, *btmp=NULL, *btmp2=NULL;
FILE * bf =fopen(\"book.txt\",\"rt\");
btmp= bhead =btmp2=(Book *)malloc(sizeof(Book));
while(fscanf(bf,\"%lld|%d|%[^|]|%[^|]|%[^|]|%[^|]|%c\\n\",&(btmp->ISBN),&(btmp->booknum),btmp->bookname,btmp->from,btmp->composer,btmp->have,&(btmp->can))!=EOF){
btmp -> blink = (Book *)malloc(sizeof(Book));
btmp2 = btmp;
btmp = btmp->blink;
}
btmp2 -> blink=NULL;
free(btmp);
fclose(bf);
return bhead;
}
int main(){
del_book();
return 0;
}
void del_book(){
int num;
char bookname[50];
long long int ISBN;
int books=-1;
int delete;
Book *del[100]={NULL};
Book *head=NULL,*b=NULL,*tmp=NULL;
printf(\"\\n>> 도서 삭제 <<\\n\");
printf(\"1. 도서명 검색 2. ISBN 검색\\n\");
printf(\"\\n검색번호를 입력하세요 : \");
scanf(\"%d\",&num);
getchar();
if(num==1){
printf(\"도서명을 입력하세요 : \");
scanf(\"%[^\\n]\",bookname);getchar();/////////요부분 도서명을 입력하고나면.....가만이 깜빡깜빡만하고 진행이 되지 않아요 ㅠㅠ
b=tmp=Bookarrange();
while(tmp->blink!=NULL){
if(strcmp(bookname,b->bookname)==0){
books++;
del[books]=b;
}
tmp=b;
b->blink;
}
}
else{
printf(\"ISBN을 입력하세요 : \");
scanf(\"%lld\",&ISBN);getchar();
b=tmp=Bookarrange();
while(tmp->blink!=NULL){
if(strcmp(bookname,b->bookname)==0){
books++;
del[books]=b;
}
tmp=b;
b->blink;
}
}
printf(\">> 검색 결과 <<\");
printf(\"도서번호 : \");
int k=0;
for(k=0;k<books;k++){
printf(\"%d(삭제 가능여부 : %c) \",del[k]->booknum,del[k]->can);}
printf(\"도서명 : %s\\n\",b->bookname);
printf(\"출판사 : %s\\n\",b->from);
printf(\"저자명 : %s\\n\",b->composer);
printf(\"ISBN : %lld\\n\",b->ISBN);
printf(\"소장처 : %s\\n\",b->have);
printf(\"\\n삭제할 도서의 번호를 입력하세요:\");
scanf(\"%d\",&delete);
int i=0;
while(del[i]->booknum!=delete){
i++;}
if(del[i]->can==\'Y\'){
head=tmp=b=Bookarrange();
while(tmp->blink!=NULL){
if(del[i]->booknum==b->booknum){
tmp->blink=b->blink;
b->blink=NULL;
free(b);}
}
tmp=b=head;
FILE * f=fopen(\"book.txt\",\"wt\");
while(tmp->blink!=NULL){
fprintf(f,\"%lld|%d|%s|%s|%s|%s|%c\\n\",b->ISBN,b->booknum,b->bookname,b->from,b->composer,b->have,b->can);
tmp=b;
b=b->blink;
}
fclose(f);
printf(\"도서가 삭제 되었습니다.\");}
else
printf(\"이 도서는 삭제 할 수 업습니다.\");
}
아오 코드 보기 밉게 짜놨네
너같으면 이거 읽어보겠냐
들여쓰기도 뭐같이 되있네
http://blog.naver.com/elwlwlwk12?Redirect=Log&logNo=92575320
참고
읽다가 말았다 ㅡㅡ