Mike_ledis Δημοσ. 26 Νοεμβρίου 2010 Δημοσ. 26 Νοεμβρίου 2010 Καλησπέρα!Προσπαθώ να φτιάξω ένα πρόγραμμα στη c το οποίο αρχικά θα διαβάζει την πρώτη λέξη απο ένα αρχείο. Ύστερα θα πηγαίνει σε ένα άλλο αρχείο θα διαβάζει ανα γραμμή και μία λέξη και θα την συγκρίνει με την πρώτη.Έκανα το παρακάτω πρόγραμμα αλλα κάτι δέν έχω κάνει σωστά. main() { FILE *cfPtr1,*cfPtr2; int g1,f; int i; char sizeLineInput1[512],sizeLineInput2[512]; cfPtr1=fopen("mike1.txt","r"); cfPtr2=fopen("mike2.txt","r"); fgets(sizeLineInput2, 512, cfPtr2); //Παίρνω την πρώτη λέξη απο το αρχείο while (fgets(sizeLineInput1, 512, cfPtr1)!=NULL)// Ελεγχος για αν έχει τελειώσει το αρχείο { g1=strncmp(sizeLineInput1,sizeLineInput2,512); Σύγκριση printf("%d\n",g1);Εκτύπωση αποτελέσματος } scanf( "%d", &f ); }
virxen75 Δημοσ. 26 Νοεμβρίου 2010 Δημοσ. 26 Νοεμβρίου 2010 θέλει κάποιες αλλαγές δες τον κώδικα > #include <stdio.h> #include <string.h> int main(){ FILE *cfPtr1,*cfPtr2; int i; char sizeLineInput1[512],sizeLineInput2[512]; cfPtr1=fopen("mike1.txt","r"); cfPtr2=fopen("mike2.txt","r"); fgets(sizeLineInput2, 512, cfPtr2); if (sizeLineInput2[strlen(sizeLineInput2)-1]=='\n') sizeLineInput2[strlen(sizeLineInput2)-1]='\0'; while (fgets(sizeLineInput1, 512, cfPtr1)!=NULL){ if (sizeLineInput1[strlen(sizeLineInput1)-1]=='\n')//το fgets τελειώνει με ένα \n συνήθως και επειδή μας χαλάει το printf sizeLineInput1[strlen(sizeLineInput1)-1]='\0';//απλά το αφαιρούμε if (strcmp(sizeLineInput1,sizeLineInput2)==0) //το strcmp είναι καλύτερο printf("oi lekseis %s kai %s einai ises!\n",sizeLineInput1,sizeLineInput2); else printf("oi lekseis %s kai %s den einai ises!\n",sizeLineInput1,sizeLineInput2); } getchar();//δεν χρειαζεται η scanf,αυτό σου αρκεί return 0; }
Mike_ledis Δημοσ. 26 Νοεμβρίου 2010 Μέλος Δημοσ. 26 Νοεμβρίου 2010 θέλει κάποιες αλλαγές δες τον κώδικα > #include <stdio.h> #include <string.h> int main(){ FILE *cfPtr1,*cfPtr2; int i; char sizeLineInput1[512],sizeLineInput2[512]; cfPtr1=fopen("mike1.txt","r"); cfPtr2=fopen("mike2.txt","r"); fgets(sizeLineInput2, 512, cfPtr2); if (sizeLineInput2[strlen(sizeLineInput2)-1]=='\n') sizeLineInput2[strlen(sizeLineInput2)-1]='\0'; while (fgets(sizeLineInput1, 512, cfPtr1)!=NULL){ if (sizeLineInput1[strlen(sizeLineInput1)-1]=='\n')//το fgets τελειώνει με ένα \n συνήθως και επειδή μας χαλάει το printf sizeLineInput1[strlen(sizeLineInput1)-1]='\0';//απλά το αφαιρούμε if (strcmp(sizeLineInput1,sizeLineInput2)==0) //το strcmp είναι καλύτερο printf("oi lekseis %s kai %s einai ises!\n",sizeLineInput1,sizeLineInput2); else printf("oi lekseis %s kai %s den einai ises!\n",sizeLineInput1,sizeLineInput2); } getchar();//δεν χρειαζεται η scanf,αυτό σου αρκεί return 0; } Σε ευχαριστω πολύ!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.