renouko Δημοσ. 4 Ιανουαρίου 2010 Δημοσ. 4 Ιανουαρίου 2010 >void eisagwgi_fakelou() { char newfilename[40],file[40],ch1; printf("dwse to onoma tou fakelou pou thes na eisageis twn neo fakelo\n"); gets(file); printf("dwse to onoma tou neou fakelou pou theleis na eisageis:"); gets(newfilename); fp = fopen(filename,"w"); fprintf(fp,newfilename); fclose(fp); } //filename-->onoma arxeiou p exw anoiksei parapanw.. κανω τα παραπανω για να γραψω σε ενα αρχειο αλλα αν το εκτελεσω και μετα παω να ανοιξω το αρχειο εχουν διαγραφει ολα αυτα π ειχε μεσα.... τι κανω λαθος?
parsifal Δημοσ. 4 Ιανουαρίου 2010 Δημοσ. 4 Ιανουαρίου 2010 Χρησιμοποιείς την fopen για να ανοίξεις το filename σε write mode (όρισμα "w"). Αν θέλεις να διατηρούνται τα περιεχόμενα του αρχείου από προηγούμενες εκτελέσεις του προγράμματός σου και απλά κάθε νέα εκτέλεση να προσθέτει δεδομένα στο τέλος του filename, πρέπει να ανοίγεις το filename σε append mode ("a").
renouko Δημοσ. 4 Ιανουαρίου 2010 Μέλος Δημοσ. 4 Ιανουαρίου 2010 το εκανα και ετσι αλλα τωρα αυτο που καταφερα ηταν απλα να μην σβηνονται τα περιεχομενα και να μην γραφονται τα νεα περιεχομενα που του χω δωσει...
virxen75 Δημοσ. 4 Ιανουαρίου 2010 Δημοσ. 4 Ιανουαρίου 2010 αυτό πάντως δουλεύει τρέξε το να το δεις > #include <stdio.h> void eisagwgi_fakelou(); void eisagwgi_fakelou(){ char newfilename[40],file[40],ch1; printf("dwse to onoma tou fakelou pou thes na eisageis twn neo fakelo\n"); gets(file); printf("dwse to onoma tou neou fakelou pou theleis na eisageis:"); gets(newfilename); FILE * fp = fopen(file,"a"); fprintf(fp,newfilename); fclose(fp); } int main(){ eisagwgi_fakelou(); getchar(); return 0; }
renouko Δημοσ. 4 Ιανουαρίου 2010 Μέλος Δημοσ. 4 Ιανουαρίου 2010 παλι δεν καταφερα κατιι..το ιδιο οπως πριν...ισως κανω καποιο λαθος με την ονομασια.... thanks παντως... ---------- Το μήνυμα προστέθηκε στις 21:27 ---------- το βρηκα το λαθος..ετρεξε!!! thanks και παλι!!!!1
virxen75 Δημοσ. 4 Ιανουαρίου 2010 Δημοσ. 4 Ιανουαρίου 2010 στείλε όλο τον κώδικα σου μήπως το λάθος είναι αλλού. τι compiler χρησιμοποιείς?
chiderboy Δημοσ. 4 Ιανουαρίου 2010 Δημοσ. 4 Ιανουαρίου 2010 Μπορείς να χρησιμοποιήσεις τη συνάρτηση fseek() για να μετακινηθείς εντός του αρχείου στο σημείο που θες να γράψεις τα δεδομένα. Έτσι για παράδειγμα ανοίγεις το αρχείο σε 'r+' mode, μετακίνησε στο τέλος ή όπου αλλού θες και εκτελείς εκεί την fprintf(). Άμα ανοίξεις το αρχείο σε 'a' σου πάει αυτόματα το δείκτη στο τελος του αρχείου από την αρχή
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.