sarakinos Δημοσ. 27 Δεκεμβρίου 2013 Δημοσ. 27 Δεκεμβρίου 2013 Καλημέρα παιδιά , ασχολούμαι με μια εργασία και μέσα σε όλα τα αλλά πρέπει να διαβάζω 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 : Η άσκηση είναι για φίλο και την κάνω για να του την εξηγήσω
Timonkaipumpa Δημοσ. 27 Δεκεμβρίου 2013 Δημοσ. 27 Δεκεμβρίου 2013 Γιατί περνάς FILE* στην συνάρτηση; Επίσης, γιατί δεν κοιτάς τα streams της C++; Παρέχουν πολλές ευκολίες! Επίσης γιατί c style array και όχι κάποιον container της C++; Εδώ που τα λέμε, αυτό δεν είναι C++ αλλά C με ευκολίες C++. Για να διαβάσεις ένα αρχείο δες εδώ. 2
sarakinos Δημοσ. 27 Δεκεμβρίου 2013 Μέλος Δημοσ. 27 Δεκεμβρίου 2013 Το ξέρω φίλε μου , αυτό είναι ένα παράδειγμα από αυτά που διδάσκουν οι καθηγητές στα πανεπιστήμια και στα ΤΕΙ. Τι κάνω λάθος και μου επιστρέφει αλαμπουρνέζικα? δεν μπορώ να διαβάσω σωστά ούτε την πρώτη γραμμή!
παπι Δημοσ. 27 Δεκεμβρίου 2013 Δημοσ. 27 Δεκεμβρίου 2013 Η fread ειναι για binary. Εσυ θες text αρα fscanf
sarakinos Δημοσ. 27 Δεκεμβρίου 2013 Μέλος Δημοσ. 27 Δεκεμβρίου 2013 Πρέπει να το πάρω σαν string και μετά να το σπάσω δηλαδή για να δημιουργίσω το αντικείμενό μου?
Timonkaipumpa Δημοσ. 27 Δεκεμβρίου 2013 Δημοσ. 27 Δεκεμβρίου 2013 Αφού δεν ξέρεις ούτε και εσύ να την κάνεις, πώς θα την εξηγήσεις την άσκηση στον άλλον;
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα