Προς το περιεχόμενο

C και αρχεία


Mike_ledis

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα.Έχω κάνει ένα πρόγραμμα με αρχεία στην 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 :

 

Μπορεί κάποιος να μου εξηγήσεις γιατί συμβαίνει αυτό;

Δημοσ.

>
#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>

Δημοσ.

πριν γραψεις τον χαρακτηρα στο αρχείο, έλεγξε αν είναι ENTER ('\n') και αν είναι αγνόησε τον.

Εσυ γραφεις και τα ENTER στο αρχείο, γι'αυτο έχεις τις κενες γραμμες

Δημοσ.
πριν γραψεις τον χαρακτηρα στο αρχείο, έλεγξε αν είναι 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);
}

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...