Mike_ledis Δημοσ. 5 Δεκεμβρίου 2009 Δημοσ. 5 Δεκεμβρίου 2009 Καλησπέρα.Έχω κάνει ένα πρόγραμμα με αρχεία στην c.Το πρόγραμμα είναι πολλύ απλό.Διαβάζουμε έναν έναν χαρακτήρα και τον γράφουμε σε ένα αρχείο.Παρακάτω σας δίνω το πηγαίο κώδικα. #include <stdio.h> main(){ FILE *fileptr; int i,j; fileptr=fopen("mike.data","w"); j=1; while((i=getchar())!=EOF) { fprintf(fileptr,"o %d os xaraktiras einai : %c \n",j,i); j++; } fclose(fileptr); } Το πρόβλημα μου είναι πως όταν τρέχω το πρόγραμμα και δώσω σαν είσοδο κάποιους χαρακτήρες a,b,c,d,e,f.Μου δίνει την παρακάτω έξοδο στο αρχείο. o 1 os xaraktiras einai : a o 2 os xaraktiras einai : o 3 os xaraktiras einai : b o 4 os xaraktiras einai : o 5 os xaraktiras einai : c o 6 os xaraktiras einai : o 7 os xaraktiras einai : d o 8 os xaraktiras einai : o 9 os xaraktiras einai : e o 10 os xaraktiras einai : o 11 os xaraktiras einai : f o 12 os xaraktiras einai : o 13 os xaraktiras einai : g o 14 os xaraktiras einai : o 15 os xaraktiras einai : h o 16 os xaraktiras einai : o 17 os xaraktiras einai : i o 18 os xaraktiras einai : Μπορεί κάποιος να μου εξηγήσεις γιατί συμβαίνει αυτό;
drm Δημοσ. 5 Δεκεμβρίου 2009 Δημοσ. 5 Δεκεμβρίου 2009 > #include <stdio.h> void main(void) { FILE *fileptr; int i,j; fileptr=fopen("thomas.txt","w"); j=1; while((i=getchar())!=EOF){ fprintf(fileptr,"o %d os xaraktiras einai : %c \n",j,i); j++; } fclose(fileptr); } Εμένα μου δουλεύει μία χαρά χωρίς καμία αλλαγή... δίνω: abcdef<enter> ^Z <enter>
Mike_ledis Δημοσ. 5 Δεκεμβρίου 2009 Μέλος Δημοσ. 5 Δεκεμβρίου 2009 Δοκίμασε να βάλεις τους χαρακτήρες έναν έναν. πχ A enter B enter C enter D enter
bxenos Δημοσ. 5 Δεκεμβρίου 2009 Δημοσ. 5 Δεκεμβρίου 2009 πριν γραψεις τον χαρακτηρα στο αρχείο, έλεγξε αν είναι ENTER ('\n') και αν είναι αγνόησε τον. Εσυ γραφεις και τα ENTER στο αρχείο, γι'αυτο έχεις τις κενες γραμμες
virxen75 Δημοσ. 5 Δεκεμβρίου 2009 Δημοσ. 5 Δεκεμβρίου 2009 πριν γραψεις τον χαρακτηρα στο αρχείο, έλεγξε αν είναι ENTER ('\n') και αν είναι αγνόησε τον. Εσυ γραφεις και τα ENTER στο αρχείο, γι'αυτο έχεις τις κενες γραμμες επειδή η getchar() θέλει και enter το οποίο όμως δεν "καταναλώνεται" άρα είναι σαν να έχεις δώσει 2 χαρακτήρες, τον δικό σου και το enter > #include <stdio.h> main(){ FILE *fileptr; int i,j; fileptr=fopen("mike.data","w"); j=1; while((i=getchar())!=EOF) { [color="Red"]if (i!='\n') [/color]fprintf(fileptr,"o %d os xaraktiras einai : %c \n",j,i); j++; } fclose(fileptr); }
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.