Coursal Δημοσ. 17 Ιανουαρίου 2016 Δημοσ. 17 Ιανουαρίου 2016 Έχω φτάσει ως εδώ: #include <stdio.h> #include <stdlib.h> int wordcount (FILE *f); int main() { FILE *fp, *fout; int lexeis=0; fp = fopen("keimeno.txt", "r"); fout = fopen("metritis.txt", "w"); if (fp == NULL) { printf("File error\n"); return 1; } else printf("Search file success\n"); if (fout == NULL) { printf("File error\n"); return 1; } else printf("Search file success\n"); lexeis = wordcount(fp); fprintf(fout, "Words : %d", lexeis); fclose(fp); fclose(fout); system("pause"); return 0; } int wordcount (FILE *f) { int words = 0; char ch; while((ch = fgetc(f)) != EOF) { if (ch == '\n') words++; } return words; } Όμως στο metritis.txt μου δείχνει "Words : 0". Τι παρέλειψα; Update: άλλαξα το if (ch == '\n') σε if (ch == ' ') και φαίνεται να δουλεύει. Όμως στο metritis.txt λέει πως οι λέξεις είναι 4 ενώ είναι 5 (μία λέξη είναι το a). Update 2: άλλαξα το int words = 0; σε int words = 1; γιατί αν στο keimeno.txt υπήρχε μία μόνο λέξη, δεν θα είχε κενό να διαβάσει. Δουλεύει.
infin1tyGR Δημοσ. 17 Ιανουαρίου 2016 Δημοσ. 17 Ιανουαρίου 2016 Εσύ μετράς ουσιαστικά τα κενά μεταξύ των λέξεων που είναι όσα οι λέξεις - 1 (εφόσον δεν υπάρχει κενό μετά την τελευταία λέξη).
Coursal Δημοσ. 17 Ιανουαρίου 2016 Μέλος Δημοσ. 17 Ιανουαρίου 2016 Αν όμως ανάμεσα σε δύο λέξεις υπάρχει παραπάνω από ένα κενό;
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα