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

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

Δημοσ.

Καλημέρα παιδιά , ασχολούμαι με μια εργασία και μέσα σε όλα τα αλλά πρέπει να διαβάζω 3 πεδία από κάθε γραμμή ενός αρχείου txt και να δημιουργήσω έναν πίνακα αντικειμένων. 

Το αρχείο είναι κάπως έτσι 

 

123 Sarakinos 123,3

456 Insomnia   234,6

 

Οι 2 contstructors για την κλάση μου 

Item::Item()
{
    code = 0;
    description[15] = '\0';
    price = 0.0f;
}
 
Item::Item(int code1,char description1[],float price1)
{
    code = code1;
    strcpy(description,description1);
    price = price1;
}

Ο κώδικας της συνάρτησης για την προσπέλαση του αρχείου

void readItems(FILE *fin, Item list[]){
    int i=0;

    fin = fopen("items.txt","r");

    fread(&list[i],sizeof(Item),1,fin);
    list[i].printData();
        while(!feof(fin) && i<5){
        i++;
        fread(&list[i],sizeof(Item),1,fin);
        list[i].printData();
    }
    fclose(fin);
} 

Το θέμα μου είναι ότι το πρόγραμμα μου εμφανίζει αλαμπουρνέζικα στην οθόνη και μετά κρασάρει

 

OffTopic : Η άσκηση είναι για φίλο και την κάνω για να του την εξηγήσω 

Δημοσ.

Γιατί περνάς FILE* στην συνάρτηση;

 

Επίσης, γιατί δεν κοιτάς τα streams της C++; Παρέχουν πολλές ευκολίες!

 

Επίσης γιατί c style array και όχι κάποιον container της C++;

 

Εδώ που τα λέμε, αυτό δεν είναι C++ αλλά C με ευκολίες C++. 

 

 

Για να διαβάσεις ένα αρχείο δες εδώ.

  • Like 2
Δημοσ.

Το ξέρω φίλε μου , αυτό είναι ένα παράδειγμα από αυτά που διδάσκουν οι καθηγητές στα πανεπιστήμια και στα ΤΕΙ.

Τι κάνω λάθος και μου επιστρέφει αλαμπουρνέζικα? δεν μπορώ να διαβάσω σωστά ούτε την πρώτη γραμμή!

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

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

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

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

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

Σύνδεση

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

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