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

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

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

  • 0
feugatos

Ανάγνωση λιστών τύπου struct από αρχείο (C)

Ερώτηση

Παιδιά γειά σας,

έχω αυτό το struct:

>
typedef struct _SOLDIER { 
               char ASM[7];
	char Onoma[50];
	char Eponymo[50];
	int meresAdeias;
	int wresYpir;
	struct _SOLDIER *next;
	} SOLDIER;

 

με το οποίο δημιουργώ μια λίστα.

 

αργότερα με μια fprintf με την εξής σύνταξη

>
fprintf(fp, "%s %s %s %d %d\n", tempNode->ASM, tempNode->Onoma, tempNode->Eponymo, tempNode->meresAdeias, tempNode->wresYpir);

 

αποθηκεύω τα δεδομένα της λίστας σε ένα αρχείο.

 

Το πρόβλημά μου είναι το εξής, πως μπορώ να δημιούργήσω ξανά τh λίστα που έχω

αποθηκεύσει στο αρχείο?

 

έχω γράψει αυτή τη συνάρτηση

 

>
void loadListfromFile(char *filename) {
    if ((fp = fopen(filename, "r")) == NULL) return;
    else {
         do {
             SOLDIER *newNode = NULL, *tempNode = NULL;
             newNode = (SOLDIER *)malloc(sizeof(SOLDIER));
             fscanf(fp, "%s %s %s %d %d\n", newNode->ASM, newNode->Onoma, newNode->Eponymo, newNode->meresAdeias, newNode->wresYpir);
             if (!head) head = newNode;
             else {
                    tempNode = head;
                    while(tempNode->next) tempNode = tempNode->next;
                    tempNode->next = newNode;
                    }
                    
             }
             while(!feof(fp));
             fclose(fp);
             }
         }    

 

αλλά δεν βλέπω να λειτουργεί σωστά.

 

μπορεί να βοηθήσει κανείς;

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

3 απαντήσεις σε αυτή την ερώτηση

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

Ειλικρινά γιατί ανοίγεις νέο θέμα αφού σου έχω στείλει εγώ προσωπικά την απάντηση και μάλιστα με κώδικα. Δηλαδή τι δεν καταλαβαίνεις από το προηγούμενο θέμα;

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

οκ τελικα το βρηκα η fscanf επρεπε να εχει ως εξης

 

>
fscanf(fp, "%s %s %s %d %d\n", newNode->ASM, newNode->Onoma, newNode->Eponymo, &newNode->meresAdeias, &newNode->wresYpir);

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
×
×
  • Δημιουργία νέου...