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

γραψιμο σε αρχειο(c)


renouko

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

Δημοσ.

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

κανω τα παραπανω για να γραψω σε ενα αρχειο αλλα αν το εκτελεσω

και μετα παω να ανοιξω το αρχειο εχουν διαγραφει ολα αυτα π ειχε μεσα....

τι κανω λαθος?

Δημοσ.

Χρησιμοποιείς την fopen για να ανοίξεις το filename σε write mode (όρισμα "w"). Αν θέλεις να διατηρούνται τα περιεχόμενα του αρχείου από προηγούμενες εκτελέσεις του προγράμματός σου και απλά κάθε νέα εκτέλεση να προσθέτει δεδομένα στο τέλος του filename, πρέπει να ανοίγεις το filename σε append mode ("a").

Δημοσ.

το εκανα και ετσι αλλα τωρα αυτο που καταφερα ηταν απλα να μην σβηνονται τα περιεχομενα και να μην γραφονται τα νεα περιεχομενα που του χω δωσει...

Δημοσ.

αυτό πάντως δουλεύει τρέξε το να το δεις

 

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

Δημοσ.

παλι δεν καταφερα κατιι..το ιδιο οπως πριν...ισως κανω καποιο λαθος με την ονομασια....

thanks παντως...

 

---------- Το μήνυμα προστέθηκε στις 21:27 ----------

 

το βρηκα το λαθος..ετρεξε!!!

thanks και παλι!!!!1

Δημοσ.

Μπορείς να χρησιμοποιήσεις τη συνάρτηση fseek() για να μετακινηθείς εντός του αρχείου στο σημείο που θες να γράψεις τα δεδομένα. Έτσι για παράδειγμα ανοίγεις το αρχείο σε 'r+' mode, μετακίνησε στο τέλος ή όπου αλλού θες και εκτελείς εκεί την fprintf(). Άμα ανοίξεις το αρχείο σε 'a' σου πάει αυτόματα το δείκτη στο τελος του αρχείου από την αρχή

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

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

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