Nananeison Δημοσ. 26 Μαΐου 2013 Δημοσ. 26 Μαΐου 2013 (επεξεργασμένο) Εχω δημιουργήσει αυτό το κώδικα ο οποίος μετρά τις λέξεις!Για κάποιο λόγο όμως δεν εμφανίζει τα αστεράκια κάτι το οποίο είναι λάθος στον κώδικα.Μονο που δεν το βρίσκω!!! void printfreq(int arr[N],int *c,int *w,int *sum) { FILE *fout; int i,size; fout=fopen("file2.txt","w"); fprintf(fout,"The frequency of characters is:\n"); for(i=0;i<N;i=i+1) { if(arr!=0) { fprintf(fout,"%c:%d \n",i+'a',arr); printstars(arr); } } fprintf(fout,",:%d",*w); printstars(*w); fprintf(fout,"\n.:%d",*c); printstars(*c); fprintf(fout,"\nTotal number of characters in file: %d ",*sum); fclose(fout); } void printstars(int size) { FILE *fout; int i; fout=fopen("file2.txt","w"); for(i=0;i<size;i=i+1) fprintf(fout,"*"); fprintf(fout,"\n"); fclose(fout); } Ευχαριστώ εκ των προτέρων.. file1.txt Επεξ/σία 27 Μαΐου 2013 από Nananeison
bird Δημοσ. 27 Μαΐου 2013 Δημοσ. 27 Μαΐου 2013 Επειδή δεν μπορω να το δω αναλυτικά τώρα, το πρώτο που βλέπω, είναι οτι ενω έχεις ήδη ανοίξει το αρχείο στην printfreq, καλείς απο εκεί μεσα την printstars και ξαναανοίγεις το αρχείο... Μπορείς να αλλάξεις την prinstars ώστε να παίρνει σαν ορισμα τον FILE* του αρχέιου που έχεις ανοίξει μέσα στην printfreq και να τον χρησιμοποιείς για να τυπώσεις μεσα στο ήδη ανοιχτό αρχείο. Φαντάζομαι οτι έχεις ελέγξει τις τιμές που έχει ο arr[] και δεν ειναι μηδενικές...
Nananeison Δημοσ. 27 Μαΐου 2013 Μέλος Δημοσ. 27 Μαΐου 2013 Επειδή δεν μπορω να το δω αναλυτικά τώρα, το πρώτο που βλέπω, είναι οτι ενω έχεις ήδη ανοίξει το αρχείο στην printfreq, καλείς απο εκεί μεσα την printstars και ξαναανοίγεις το αρχείο... Μπορείς να αλλάξεις την prinstars ώστε να παίρνει σαν ορισμα τον FILE* του αρχέιου που έχεις ανοίξει μέσα στην printfreq και να τον χρησιμοποιείς για να τυπώσεις μεσα στο ήδη ανοιχτό αρχείο. Φαντάζομαι οτι έχεις ελέγξει τις τιμές που έχει ο arr[] και δεν ειναι μηδενικές... το ξέρω οτι την καλώ ξανά απλα οσες φορές προσπάθησα να δηλώσω την FILE διαφορετικά(px κατω απο το include) επειδη για να τυπώσω στο αρχείο το αστεράκι χρησιμοποιούσα την fout ο builder μου έβγαζε πρόβλημα οτι στην printstars δεν έχει οριστεί η fout. σαν όρισμα πως? ναι οι τιμές που έχει ο arr[] δεν είναι μηδενικές και εμφανίζονται κανονικά δίπλα από το κάθε γράμμα όπως έχω ορίσει.τα αστεράκια δεν λενε να βγουν με τιποτα ομως
bird Δημοσ. 27 Μαΐου 2013 Δημοσ. 27 Μαΐου 2013 Κανε την printstars κάπως έτσι: void printstars(int size, FILE* fout) { int i; for(i=0;i<size;i=i+1) fprintf(fout,"*"); fprintf(fout,"\n"); } κάλεσέ την από την printfreq ως εξής: ... printstars(arr[i], fout); ... printstars(*w, fout); ... printstars(*c, fout); ... editΕπίσης στην readcount δεν χρειάζεται να ανοιγεις και να κλείνεις το file2.txt απο τη στιγμή που δεν το χρησιμοποιείς πουθενά εκεί μέσα...
Nananeison Δημοσ. 27 Μαΐου 2013 Μέλος Δημοσ. 27 Μαΐου 2013 ΣΕ ΕΥΧΑΡΙΣΤΩ ΑΠΕΙΡΑ για τις διορθώσεις σου...δεν φανταζεσαι ποσο με ταλαιπωρησε αυτο το με τα αστεράκια!ουτε πόσο χαρούμενη με έκανες αυτη την στιγμή!είχα και κάτι άλλα μικρολαθάκια στον κώδικα αλλα τα διορθωσα και αυτα και ολα μια χαρά!!
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα