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

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

Δημοσ.

Επειδή απ'ότι φαίνεται είσαι καινούργιος στον προγραμματισμό, αν σκοπεύεις να ασχοληθείς σοβαρά με εφαρμογές σε C πρέπει να ξέρεις ότι η fwrite και η fread δεν είναι portable συναρτήσεις. Ο λόγος είναι πως γράφουν τα bytes ακριβώς όπως τα βρίσκουν από τη RAM στο αρχείο κι έτσι όταν πας τα αρχεία/πρόγραμμα σε διαφορετικό σύστημα, το endianess μπορεί να είναι διαφορετικό και να διαβάζεις τα δεδομένα ανάποδα! Επίσης και σε ίδιο endianess να πας μπορεί να υπάρξουν προβλήματα με ta paddings των αρχείων. Οπότε καλύτερα να ξεκινήσεις να τις αποφεύγεις και να χρησιμοποιείς fprintf, fscanf μέχρι να προχωρήσεις σε POSIX.

Οι fprintf() - fscanf() δεν ειναι για BINARY

Δημοσ.

@vrixen το fseek(fp,sizeof(struct player)*(-1),SEEK_CUR); νομιζω βγαζει MAX_INT - sizeof(struct player)

Κανε ενα cast σε signed ( (long) sizeof(struct player) ) * -1 ή -( (long) sizeof(..))

Δημοσ.

Οι fprintf() - fscanf() δεν ειναι για BINARY

 

Πού του είπα να χρησιμοποιεί binary? Ειδικά για το πρόβλημά του είναι overkill.

Δημοσ.

 

Πού του είπα να χρησιμοποιεί binary? Ειδικά για το πρόβλημά του είναι overkill.

Ο Leuteris ειπς οτι θελει δυαδικο αρχειο

 

Δημοσ.

 

 

Ο Leuteris ειπς οτι θελει δυαδικο αρχειο

 

 

 

 

Ναι κι εγώ λέω ότι καλύτερα να πάει σε text αρχεία για τον λόγο που ανέφερα παραπάνω. Δεν εννoούσα να χρησιμοποιήσει fscanf ή fprintf στα binary. Ίσως έχεις δίκιο στο ότι δε το είπα καθαρά, αλλά το θεώρησα αυτονόητο :P.

 

 

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...