Linked List Insert Problemi(C)
-
beyler ufak bir problem yaşıyorum. kodlarım aşağıdaki gibi ilk ekleme işleminde değer olarak Resim Tablosu gönderiyorum eklemeyi yapıyor ikinci değer olarak Icecek gönderiyorum kayıtlı diyor :S
temp=cList dedikten sonra temp->name değeri direk Icecek olarak eşitleniyor :S
struct category{ char *name; struct category *next; struct product *products; }*cList=NULL; void create_category(char *name, FILE *out){ struct category *ctg = malloc(sizeof(struct category)); struct category *temp; ctg->name=name; ctg->next=NULL; ctg->products=NULL; if(cList==NULL){ cList=ctg; fprintf(out, "\nCOMMAND : CREATE CATEGORY NAME \"%s\"\nRESULT : SUCCESSFUL", name); } else{ temp=cList; fprintf(out, "\ntemp name : %s", temp->name); while(temp->next!=NULL && strcmp(temp->name,ctg->name) != 0){ temp=temp->next; } if(strcmp(temp->name, ctg->name)==0){ fprintf(out, "\nCOMMAND : CREATE CATEGORY NAME \"%s\"\nRESULT : FAILED - YOU HAVE ALREADY ADDED CATEGORY", name); } else{ temp->next=ctg; fprintf(out, "\nCOMMAND : CREATE CATEGORY NAME \"%s\"\nRESULT : SUCCESSFUL", name); } } }
-
edit
edit2: malloc önüne (category *) yazınca düzeldi.
ben şöyle çalıştırdım:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct product
{
int some;
};
struct category{
char *name;
struct category *next;
struct product *products;
}*cList = NULL;
void create_category(char *name, FILE *out){
struct category *ctg = (category*)malloc(sizeof(struct category));
struct category *temp;
ctg->name = name;
ctg->next = NULL;
ctg->products = NULL;
if (cList == NULL){
cList = ctg;
fprintf(out, "\nCOMMAND : CREATE CATEGORY NAME \"%s\"\nRESULT : SUCCESSFUL", name);
}
else{
temp = cList;
fprintf(out, "\ntemp name : %s", temp->name);
while (temp->next != NULL && strcmp(temp->name, ctg->name) != 0){
temp = temp->next;
}
if (strcmp(temp->name, ctg->name) == 0){
fprintf(out, "\nCOMMAND : CREATE CATEGORY NAME \"%s\"\nRESULT : FAILED - YOU HAVE ALREADY ADDED CATEGORY", name);
}else{
temp->next = ctg;
fprintf(out, "\nCOMMAND : CREATE CATEGORY NAME \"%s\"\nRESULT : SUCCESSFUL", name);
}
}
}
int main(void)
{
create_category("keke", stdout);
create_category("peke", stdout);
create_category("caka", stdout);
create_category("peke", stdout);
return 0;
}
ÇIKTICOMMAND : CREATE CATEGORY NAME "keke"
herlocksholmes tarafından 07/Eki/14 00:53 tarihinde düzenlenmiştir
RESULT : SUCCESSFUL
temp name : keke
COMMAND : CREATE CATEGORY NAME "peke"
RESULT : SUCCESSFUL
temp name : keke
COMMAND : CREATE CATEGORY NAME "caka"
RESULT : SUCCESSFUL
temp name : keke
COMMAND : CREATE CATEGORY NAME "peke"
RESULT : FAILED - YOU HAVE ALREADY ADDED CATEGORY -
hacı malloc önüne tek (category*) yapınca hata veriyor (struct category*) yazınca da aynısı geri dönüyor
-
cList her seferinde ilk değeri döndürmesi gerekirken bende sürekli olarak hep gelen değeri döndürüyor :S
-
çok uykuluyum yarın unutmazsam bi bakarım.
-
Tam anlamadım istediğini ama şöyle yaptım çalışması lazım..
#include <iostream> #include "conio.h" #include "stdio.h" #include "stdlib.h" typedef struct category{ char *name; struct category *next; struct product *products; } CATEGORY; CATEGORY *cList = NULL; void create_category(char *name, FILE *out) { CATEGORY *ctg = (CATEGORY*) malloc(sizeof(struct category)); CATEGORY *temp = NULL; ctg->name = name; ctg->next = NULL; ctg->products = NULL; if (cList == NULL){ //Boşsa hemen ekle cList = ctg; fprintf(out, "\nCOMMAND : CREATE CATEGORY NAME \"%s\"\nRESULT : SUCCESSFUL", name); } else { //Boş değilse her node'u karşılaştır eşitlik yoksa sonuna ekle. temp = cList; fprintf(out, "\ntemp name : %s", temp->name); while (temp->next != NULL) { if (strcmp(temp->name, ctg->name) == 0) { fprintf(out, "\nCOMMAND : CREATE CATEGORY NAME \"%s\"\nRESULT : FAILED - YOU HAVE ALREADY ADDED CATEGORY", name); return; } temp = temp->next; } if (strcmp(temp->name, ctg->name) == 0) { fprintf(out, "\nCOMMAND : CREATE CATEGORY NAME \"%s\"\nRESULT : FAILED - YOU HAVE ALREADY ADDED CATEGORY", name); } else { temp->next = ctg; fprintf(out, "\nCOMMAND : CREATE CATEGORY NAME \"%s\"\nRESULT : SUCCESSFUL", name); } } } int main(void) { create_category("deneme", stdout); create_category("aka", stdout); create_category("kaka", stdout); create_category("aka", stdout); printf("\n %s", cList->name); system("PAUSE"); return 0; }
-
bir sıkıntı olursa özel mesaj at burayı takip edemeyebilirim.
-
olmuyor gelen cevaplar şu şekilde
COMMAND : CREATE CATEGORY NAME "Resim Tablosu"
RESULT : SUCCESSFUL
COMMAND : CREATE CATEGORY NAME "Icecek"
RESULT : FAILED - YOU HAVE ALREADY ADDED CATEGORY
COMMAND : CREATE CATEGORY NAME "Icecek"
RESULT : FAILED - YOU HAVE ALREADY ADDED CATEGORY
temp=&cList; dediğimde ekleme oluyor ama bu sefer de tekrar cListi okuduğumda name kısmı saçma sapan bişey cıkıyor :S
crafty tarafından 07/Eki/14 15:17 tarihinde düzenlenmiştir -
Benim verdiğim kodda bir sıkıntı yok. Var olmayan şeyi ekliyor düzgünce. Visual Studio ile derliyorum 2013. Sıkıntı yok.
create_category("Resim Tablosu", stdout);
create_category("Icecek", stdout);
create_category("Icecek", stdout);
create_category("aka", stdout);
printf("\n %s\n", cList->name);
system("PAUSE");
return 0;
DrKill tarafından 07/Eki/14 15:47 tarihinde düzenlenmiştir
COMMAND : CREATE CATEGORY NAME "Resim Tablosu"
RESULT : SUCCESSFUL
temp name : Resim Tablosu
COMMAND : CREATE CATEGORY NAME "Icecek"
RESULT : SUCCESSFUL
temp name : Resim Tablosu
COMMAND : CREATE CATEGORY NAME "Icecek"
RESULT : FAILED - YOU HAVE ALREADY ADDED CATEGORY
temp name : Resim Tablosu
COMMAND : CREATE CATEGORY NAME "aka"
RESULT : SUCCESSFUL
Resim Tablosu
Devam etmek için bir tuşa basın . . . -
dbms için c ile yazılmış kodlamanın tamamı aşağıdadır...
#include <stdio.h> #include <stdlib.h> #include <string.h> struct product{ char name[255]; char cat[255]; char price[255]; struct product *next; }; struct category{ char name[255]; struct category *next; struct product *products; }*cList=NULL; struct lister{ char prod[255]; char pric[255]; char cat[255]; struct lister *next; }*pList=NULL; void create_category(char *arg0, FILE *out){ struct category *ctg=(struct category*)malloc(sizeof(struct category)); struct category *temp; strcpy(ctg->name, arg0); ctg->next=NULL; ctg->products=NULL; if(cList==NULL){ cList=ctg; fprintf(out, "\rCOMMAND:\nCREATE CATEGORY NAME \"%s\"\nRESULT:\nSUCCESSFUL\n\n", arg0); } else{ temp=cList; while(temp->next!=NULL && strcmp(temp->name,ctg->name)!=0){ temp=temp->next; } if(strcmp(temp->name, ctg->name)==0){ fprintf(out, "\rCOMMAND:\nCREATE CATEGORY NAME \"%s\"\nRESULT:\nFAILED\n\n", arg0); } else{ temp->next=ctg; fprintf(out, "\rCOMMAND:\nCREATE CATEGORY NAME \"%s\"\nRESULT:\nSUCCESSFUL\n\n", arg0); } } } void create_product(char *arg0, char *arg1, char *arg2, FILE *out){ struct product *prd=(struct product*)malloc(sizeof(struct product)); struct product *ptemp; struct category *ctemp=cList; strcpy(prd->name, arg0); strcpy(prd->cat, arg1); strcpy(prd->price, arg2); prd->next=NULL; while(ctemp!=NULL && strcmp(ctemp->name, arg1)!=0){ ctemp=ctemp->next; } if(ctemp==NULL){ fprintf(out, "\rCOMMAND:\nCREATE PRODUCT NAME \"%s\" CATEGORY \"%s\" PRICE %sRESULT:\nFAILED\n\n", arg0, arg1, arg2); } else{ if(ctemp->products==NULL){ ctemp->products = prd; fprintf(out, "\rCOMMAND:\nCREATE PRODUCT NAME \"%s\" CATEGORY \"%s\" PRICE %sRESULT:\nSUCCESSFUL\n\n", arg0, arg1, arg2); } else{ ptemp=ctemp->products; while(ptemp->next!=NULL){ ptemp=ptemp->next; } ptemp->next=prd; fprintf(out, "\rCOMMAND:\nCREATE PRODUCT NAME \"%s\" CATEGORY \"%s\" PRICE %sRESULT:\nSUCCESSFUL\n\n", arg0, arg1, arg2); } } } void list_str(){ pList=NULL; struct category *ctemp=cList; struct product *ptemp; while(ctemp!=NULL){ ptemp=ctemp->products; while(ptemp!=NULL){ struct lister *lit=(struct lister*)malloc(sizeof(struct lister)); struct lister *ltemp; strcpy(lit->cat, ctemp->name); strcpy(lit->prod, ptemp->name); strcpy(lit->pric, ptemp->price); lit->next=NULL; if(pList==NULL){ pList=lit; } else{ ltemp=pList; while(ltemp->next!=NULL){ ltemp=ltemp->next; } ltemp->next=lit; } ptemp=ptemp->next; } ctemp=ctemp->next; } } void delete_product(char *arg0, char *arg1, FILE *out){ struct category *ctemp; struct product *ptemp; struct product *btemp; ctemp=cList; while(ctemp!=NULL && strcmp(ctemp->name, arg1)!=0){ ctemp=ctemp->next; } if(ctemp==NULL){ fprintf(out, "\rCOMMAND:\nDELETE PRODUCT WHERE NAME IS \"%s\" AND CATEGORY IS \"%s\"\nRESULT:\nFAILED\n\n", arg0, arg1); } else{ ptemp=ctemp->products; btemp=ctemp->products; while(ptemp!=NULL && strcmp(ptemp->name, arg0)!=0){ ptemp=ptemp->next; } if(ptemp==NULL){ fprintf(out, "\rCOMMAND:\nDELETE PRODUCT WHERE NAME IS \"%s\" AND CATEGORY IS \"%s\"\nRESULT:\nFAILED\n\n", arg0, arg1); } else{ while(btemp->next!=ptemp && btemp!= ptemp){ btemp=btemp->next; } if(btemp==ptemp){ ctemp->products=ptemp->next; } else{ btemp->next=ptemp->next; } fprintf(out, "\rCOMMAND:\nDELETE PRODUCT WHERE NAME IS \"%s\" AND CATEGORY IS \"%s\"\nRESULT:\nSUCCESSFUL\n\n", arg0, arg1); free(ptemp); } } list_str(); } void sort_ascn(FILE *out){ list_str(); struct lister *ltemp=pList; int i=0; while(ltemp!=NULL){ i++; ltemp=ltemp->next; } struct lister *atemp[i]; ltemp=pList; int ai=0; while(ltemp!=NULL){ atemp[ai]=ltemp; ai++; ltemp=ltemp->next; } int ii, j; struct lister *it; for(ii=1; ii<i; ++ii){ if(strcmp(atemp[ii]->prod, atemp[ii-1]->prod)<0){ it=atemp[ii]; for(j=ii; j>0 && (strcmp(it->prod, atemp[j-1]->prod)<0); --j){ atemp[j]=atemp[j-1]; } atemp[j]=it; } } pList=NULL; int x; for(x=0; x<i; x++){ struct lister *flist=(struct lister*)malloc(sizeof(struct lister)); struct lister *ftemp; strcpy(flist->cat, atemp[x]->cat); strcpy(flist->pric, atemp[x]->pric); strcpy(flist->prod, atemp[x]->prod); flist->next=NULL; if(pList==NULL){ pList=flist; } else{ ftemp=pList; while(ftemp->next!=NULL){ ftemp=ftemp->next; } ftemp->next=flist; } } fprintf(out, "\rCOMMAND:\nSORT PRODUCT BY NAME ASC\nRESULT:\nSUCCESSFULL\n\n"); } void sort_descn(FILE *out){ list_str(); struct lister *ltemp=pList; int i=0; while(ltemp!=NULL){ i++; ltemp=ltemp->next; } struct lister *atemp[i]; ltemp=pList; int ai=0; while(ltemp!=NULL){ atemp[ai]=ltemp; ai++; ltemp=ltemp->next; } int ii, j; struct lister *it; for(ii=1; ii<i; ++ii){ if(strcmp(atemp[ii]->prod, atemp[ii-1]->prod)<0){ it=atemp[ii]; for(j=ii; j>0 && (strcmp(it->prod, atemp[j-1]->prod)<0); --j){ atemp[j]=atemp[j-1]; } atemp[j]=it; } } pList=NULL; int x; for(x=i; x>0; x--){ struct lister *flist=(struct lister*)malloc(sizeof(struct lister)); struct lister *ftemp; strcpy(flist->cat, atemp[x-1]->cat); strcpy(flist->pric, atemp[x-1]->pric); strcpy(flist->prod, atemp[x-1]->prod); flist->next=NULL; if(pList==NULL){ pList=flist; } else{ ftemp=pList; while(ftemp->next!=NULL){ ftemp=ftemp->next; } ftemp->next=flist; } } fprintf(out,"\rCOMMAND\nSORT PRODUCT BY NAME DESC\nRESULT:\nSUCCESSFUL\n\n"); } void sort_ascp(FILE *out){ list_str(); struct lister *ltemp=pList; int i=0; while(ltemp!=NULL){ i++; ltemp=ltemp->next; } struct lister *atemp[i]; ltemp=pList; int ai=0; while(ltemp!=NULL){ atemp[ai]=ltemp; ai++; ltemp=ltemp->next; } int ii, j; struct lister *it; for(ii=1; ii<i; ++ii){ if(atof(atemp[ii]->pric) < atof(atemp[ii-1]->pric)){ it=atemp[ii]; for(j=ii; j>0 && (atof(it->pric) < atof(atemp[j-1]->pric)); --j){ atemp[j]=atemp[j-1]; } atemp[j]=it; } } pList=NULL; int x; for(x=0; x<i; x++){ struct lister *flist=(struct lister*)malloc(sizeof(struct lister)); struct lister *ftemp; strcpy(flist->cat, atemp[x]->cat); strcpy(flist->pric, atemp[x]->pric); strcpy(flist->prod, atemp[x]->prod); flist->next=NULL; if(pList==NULL){ pList=flist; } else{ ftemp=pList; while(ftemp->next!=NULL){ ftemp=ftemp->next; } ftemp->next=flist; } } fprintf(out, "\rCOMMAND:\nSORT PRODUCT BY PRICE ASC\nRESULT:\nSUCCESSFUL\n\n"); } void sort_descp(FILE *out){ list_str(); struct lister *ltemp=pList; int i=0; while(ltemp!=NULL){ i++; ltemp=ltemp->next; } struct lister *atemp[i]; ltemp=pList; int ai=0; while(ltemp!=NULL){ atemp[ai]=ltemp; ai++; ltemp=ltemp->next; } int ii, j; struct lister *it; for(ii=1; ii<i; ++ii){ if(atof(atemp[ii]->pric) < atof(atemp[ii-1]->pric)){ it=atemp[ii]; for(j=ii; j>0 && (atof(it->pric) < atof(atemp[j-1]->pric)); --j){ atemp[j]=atemp[j-1]; } atemp[j]=it; } } pList=NULL; int x; for(x=i; x>0; x--){ struct lister *flist=(struct lister*)malloc(sizeof(struct lister)); struct lister *ftemp; strcpy(flist->cat, atemp[x-1]->cat); strcpy(flist->pric, atemp[x-1]->pric); strcpy(flist->prod, atemp[x-1]->prod); flist->next=NULL; if(pList==NULL){ pList=flist; } else{ ftemp=pList; while(ftemp->next!=NULL){ ftemp=ftemp->next; } ftemp->next=flist; } } fprintf(out, "\rCOMMAND:\nSORT PRODUCT BY PRICE DESC\nRESULT:\nSUCCESSFUL\n\n"); } void list_category(FILE *out){ struct category *ctemp=cList; if(ctemp!=NULL){ while(ctemp != NULL){ fprintf(out, "\rCATEGORY NAME \"%s\"\n", ctemp->name); ctemp=ctemp->next; } } else{ fprintf(out, "\rEMPTY"); } } void list_product(FILE *out){ if(pList==NULL){ list_str(); } struct lister *ptemp=pList; if(ptemp!=NULL){ while(ptemp!=NULL){ fprintf(out, "\rPRODUCT NAME \"%s\" CATEGORY \"%s\" PRICE %s", ptemp->prod, ptemp->cat, ptemp->pric); ptemp=ptemp->next; } } else{ fprintf(out, "\rEMPTY\n"); } } void list_productw(int arg0, char *arg1, FILE *out){ if(pList==NULL){ list_str(); } int i=0; struct lister *ptemp=pList; if(ptemp!=NULL){ while(ptemp!=NULL){ if(arg0==0 && strcmp(arg1, ptemp->prod)==0) { fprintf(out, "\rPRODUCT NAME \"%s\" CATEGORY \"%s\" PRICE %s", ptemp->prod, ptemp->cat, ptemp->pric); i++; } else if(arg0==1 && strcmp(arg1, ptemp->pric)==0){ fprintf(out, "\rPRODUCT NAME \"%s\" CATEGORY \"%s\" PRICE %s", ptemp->prod, ptemp->cat, ptemp->pric); i++; } ptemp=ptemp->next; } } else{ fprintf(out, "\rEMPTY\n"); } if(i==0){ fprintf(out, "\rEMPTY\n"); } } void list_productb(char *arg0, char *arg1, FILE *out){ if(pList==NULL){ list_str(); } int i=0; struct lister *ptemp=pList; if(ptemp!=NULL){ while(ptemp!=NULL){ if(strcmp(ptemp->pric, arg0)==1 && strcmp(arg1, ptemp->pric)==1){ fprintf(out, "\rPRODUCT NAME \"%s\" CATEGORY \"%s\" PRICE %s", ptemp->prod, ptemp->cat, ptemp->pric); i++; } ptemp=ptemp->next; } } else{ fprintf(out, "\rEMPTY\n"); } if(i==0){ fprintf(out, "\rEMPTY\n"); } } void list_productc(char *arg0, FILE *out){ struct category *ctemp=cList; struct product *ptemp; int i=0; while(ctemp!=NULL){ if(strcmp(ctemp->name, arg0)==0){ ptemp=ctemp->products; while(ptemp!=NULL){ fprintf(out, "\rPRODUCT NAME \"%s\" CATEGORY \"%s\" PRICE %s", ptemp->name, ctemp->name, ptemp->price); i++; ptemp=ptemp->next; } } ctemp=ctemp->next; } if(i==0){ fprintf(out, "\rEMPTY"); } } void create_image(FILE *out){ fprintf(out, "\rCOMMAND:\nCREATE IMAGE\nRESULT:\n"); list_category(out); list_product(out); fprintf(out, "\n"); } void execute(char *line, FILE *out){ char *command; char *arg0, *arg1, *arg2; int st0, st1; int i; char *comm[]={"IS", "BY", "AND", "ASC", "ALL", "NAME", "SORT", "DESC", "LIST", "PRICE", "IMAGE", "WHERE", "CREATE", "DELETE", "PRODUCT", "BETWEEN", "CATEGORY"}; command = strtok(line," "); if(strcmp(command, comm[12])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[14])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[5])==0){ arg0=strtok(NULL, "\""); /*product name*/ arg1=strtok(NULL, " "); if(strcmp(arg1, comm[16])==0){ arg1=strtok(NULL, "\""); /*category name*/ arg2=strtok(NULL, " "); if(strcmp(arg2, comm[9])==0){ arg2=strtok(NULL, "\0"); create_product(arg0, arg1, arg2, out); } } } } else if(strcmp(arg0, comm[16])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[5])==0){ arg0=strtok(NULL, "\""); create_category(arg0, out); } } else{ for(i=0; i<5; i++){ if(arg0[i]==comm[10][i]){ st0=1; } else{ st0=0; break; } } if(st0==1){ create_image(out); } } } else if(strcmp(command, comm[13])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[14])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[11])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[5])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[0])==0){ arg0=strtok(NULL, "\""); /*product name*/ arg1=strtok(NULL, " "); if(strcmp(arg1, comm[2])==0){ arg1=strtok(NULL, " "); if(strcmp(arg1, comm[16])==0){ arg1=strtok(NULL, " "); if(strcmp(arg1, comm[0])==0){ arg1=strtok(NULL, "\""); /*category name*/ delete_product(arg0, arg1, out); } } } } } } } } else if(strcmp(command, comm[6])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[14])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[1])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[5])==0){ arg0=strtok(NULL, "\n"); if(strcmp(arg0, comm[3])==0){ sort_ascn(out); } else if(strcmp(arg0, comm[7])==0){ sort_descn(out); } } else if(strcmp(arg0, comm[9])==0){ arg0=strtok(NULL, "\n"); if(strcmp(arg0, comm[3])==0){ sort_ascp(out); } else if(strcmp(arg0, comm[7])==0){ sort_descp(out); } } } } } else if(strcmp(command, comm[8])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[14])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[11])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[5])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[0])==0){ arg0=strtok(NULL, "\""); fprintf(out, "\rCOMMAND:\nLIST PRODUCT WHERE NAME IS \"%s\"\nRESULT:\n", arg0); list_productw(0, arg0, out); fprintf(out, "\n\n"); } } else if(strcmp(arg0, comm[9])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[0])==0){ arg0=strtok(NULL, "\n"); fprintf(out, "\rCOMMAND:\nLIST PRODUCT WHERE PRICE IS %s\nRESULT:\n", arg0); list_productw(1, arg0, out); fprintf(out, "\n\n"); } if(strcmp(arg0, comm[15])==0){ arg0=strtok(NULL, " "); /*min deger*/ arg1=strtok(NULL, "\n"); /*max deger*/ fprintf(out, "\rCOMMAND:\nLIST PRODUCT WHERE PRICE BETWEEN %s %s\nRESULT:\n", arg0, arg1); list_productb(arg0, arg1, out); fprintf(out, "\n\n"); } } else if(strcmp(arg0, comm[16])==0){ arg0=strtok(NULL, " "); if(strcmp(arg0, comm[0])==0){ arg0=strtok(NULL, "\""); fprintf(out, "\rCOMMAND:\nLIST PRODUCT WHERE CATEGORY IS \"%s\"\nRESULT:\n", arg0); list_productc(arg0, out); fprintf(out, "\n\n"); } } } else{ for(i=0; i<3; i++){ if(arg0[i]==comm[4][i]){ st0=1; } else{ st0=0; break; } } if(st0==1){ fprintf(out, "\rCOMMAND:\nLIST PRODUCT ALL\nRESULT:\n"); list_product(out); fprintf(out, "\n"); } } } else if(strcmp(arg0, comm[16])==0){ arg0=strtok(NULL, "\n"); if(strcmp(arg0, comm[4])==0){ fprintf(out, "\rCOMMAND:\nLIST CATEGORY ALL\nRESULT:\n"); list_category(out); fprintf(out, "\n"); } } } /*if bitiş*/ } void readInput(char *file, FILE *out){ char buff[255]; FILE *input=fopen(file, "r"); while(fgets(buff, 255, input)!= NULL){ execute(buff, out); } fclose(input); } int main(int argc, char **argv) { if(argc != 3){ printf("Usage: program <input file> <output file>\n"); return 0; } FILE *out = fopen(argv[2], "w"); readInput(argv[1], out); fclose(out); return 1; }