torq Δημοσ. 25 Ιανουαρίου 2009 Δημοσ. 25 Ιανουαρίου 2009 Καλησπέρα σε όλους. Έχω ένα αρχείο που σε κάθε γραμμή έχει έναν κωδικό(int) και την αντίστοιχη τιμή του(float). Θέλω να διαβάσω το αρχείο και να αποθηκεύσω σε έναν πίνακα(δυναμικός) τους κωδικούς για τους οποίους η τιμή τους είναι πάνω από 10. Το έκανα με χρήση vector μιας που πιστεύω ήταν η καλύτερη λύση. Έχει να προτείνει κανείς κάτι καλύτερο; Μορφή αρχείου (file.txt): > 500 2,2 600 11 700 12,2 >int main() { vector<int> vector1; int code; float timi; ifstream my_file("file.txt"); while (!my_file.eof()) { my_file>>code>>timi;//temp storage if(timi<5) vector1.push_back(code); } my_file.close(); for(int i=0;i<vector1.size();i++) cout << vector1[i]<<endl; } και μια ερώτηση ακόμα.αν δεν είχα χρησιμοποιήσει vector και το έκανα με δυναμικό πίνακα μπορεί κάποιος να με βοηθήσει για το πως περίπου θα γίνοταν.πως θα προσθέτω κάθε φορά στον πίνακα το στοιχείο που θέλω(δηλαδή πως θα μεγαλώνει το μέγεθος του πίνακα)
pinball_elf Δημοσ. 26 Ιανουαρίου 2009 Δημοσ. 26 Ιανουαρίου 2009 Με δυναμικό πίνακα μπορεί να γίνει και ώς εξής: > int * my_array = NULL; int size = 0; ... if(timi>10.0) { if (my_array == NULL) my_array = (int*)malloc(sizeof(int)); else { my_array = (int*)realloc(my_array, (size+1)sizeof(int)); } my_array[size] = code; size++; }
Evgenios1 Δημοσ. 26 Ιανουαρίου 2009 Δημοσ. 26 Ιανουαρίου 2009 [ασχετος] Δε μου λετε πως δουλευει το αστερακι στη σι πλας πλας. Επεισης, ifstream ειναι interface?
Evgenios1 Δημοσ. 26 Ιανουαρίου 2009 Δημοσ. 26 Ιανουαρίου 2009 [ασχετος] Δε μου λετε πως δουλευει το αστερακι στη σι πλας πλας. Επεισης, ifstream ειναι interface?
georgemarios Δημοσ. 27 Ιανουαρίου 2009 Δημοσ. 27 Ιανουαρίου 2009 [ασχετος] Δε μου λετε πως δουλευει το αστερακι στη σι πλας πλας.Επεισης, ifstream ειναι interface? το * εχει να κανει με τους pointers . το ifstream ειναι πραγματι μια κλαση που παρεχει ενα interface για να διαβαζεις δεδομενα απο αρχεια.... Καλο διαβασμα, και οτι απορια εδω ειμαστε...
georgemarios Δημοσ. 27 Ιανουαρίου 2009 Δημοσ. 27 Ιανουαρίου 2009 [ασχετος] Δε μου λετε πως δουλευει το αστερακι στη σι πλας πλας.Επεισης, ifstream ειναι interface? το * εχει να κανει με τους pointers . το ifstream ειναι πραγματι μια κλαση που παρεχει ενα interface για να διαβαζεις δεδομενα απο αρχεια.... Καλο διαβασμα, και οτι απορια εδω ειμαστε...
Evgenios1 Δημοσ. 27 Ιανουαρίου 2009 Δημοσ. 27 Ιανουαρίου 2009 μπερδεμενα ... Δε μπορω να καταλαβω πως δουλεβει αυτο > ainterface intr; intr.DoSomething(); ενα interface δεν υποτιθετε πος υποστιρηζει πολλες κλασεις? Ρε παιδι μου, πχ στη c# εχεις 2 κλασεις (classA classB) και ενα interface (iclass), η classA πχ διαβαζει ενα binary αρχειο και η classB ενα xml αρχειο και τελος το iclass περιεχει μια σηναρτηση (ReadValue). Στο προγραμα οταν θελεις να διαβασεις ενα bin file κανεις το παρακατω > iclass i = [b]new classA{};[/b] i.ReadValue(); τωρα στη cpp πως στο καλο κανεις αυτο το πραμα > iclass i; i.ReadValue(); \\τι στο καλο θα διαβασει?
Evgenios1 Δημοσ. 27 Ιανουαρίου 2009 Δημοσ. 27 Ιανουαρίου 2009 μπερδεμενα ... Δε μπορω να καταλαβω πως δουλεβει αυτο > ainterface intr; intr.DoSomething(); ενα interface δεν υποτιθετε πος υποστιρηζει πολλες κλασεις? Ρε παιδι μου, πχ στη c# εχεις 2 κλασεις (classA classB) και ενα interface (iclass), η classA πχ διαβαζει ενα binary αρχειο και η classB ενα xml αρχειο και τελος το iclass περιεχει μια σηναρτηση (ReadValue). Στο προγραμα οταν θελεις να διαβασεις ενα bin file κανεις το παρακατω > iclass i = [b]new classA{};[/b] i.ReadValue(); τωρα στη cpp πως στο καλο κανεις αυτο το πραμα > iclass i; i.ReadValue(); \\τι στο καλο θα διαβασει?
georgemarios Δημοσ. 27 Ιανουαρίου 2009 Δημοσ. 27 Ιανουαρίου 2009 α, μαλιστα Οταν η C# (ή η Java) λεει Interface εννοει ενα συγκεκριμενο ειδος "κλασεων" που (αν δε κανω λαθος) εχουν δηλωμενες καποιες member functions χωρις ομως implementation.... Στη C++ δεν υπαρχουν τετοια Interfaces, το αντιστοιχο στη C++ ειναι μια κλασση που εχει τουλ 1 pure virtual function. Αυτου του ειδους οι κλασεις στη C++ λεγονται abstract classes Στο λινκ που σου εστειλα, οταν λεει interface, εννοει αυτο που σημαινει πραγματικα, δηλαδη το ifstream ειναι μια κλασση (κανονικη κλασση) που δινει τη δυνατοτητα στον προγραμματιστη να διαβασει τα δεδομενα απο ενα αρχειο σαν streams. Ελπιζω να λυθηκε η παρεξηγηση
georgemarios Δημοσ. 27 Ιανουαρίου 2009 Δημοσ. 27 Ιανουαρίου 2009 α, μαλιστα Οταν η C# (ή η Java) λεει Interface εννοει ενα συγκεκριμενο ειδος "κλασεων" που (αν δε κανω λαθος) εχουν δηλωμενες καποιες member functions χωρις ομως implementation.... Στη C++ δεν υπαρχουν τετοια Interfaces, το αντιστοιχο στη C++ ειναι μια κλασση που εχει τουλ 1 pure virtual function. Αυτου του ειδους οι κλασεις στη C++ λεγονται abstract classes Στο λινκ που σου εστειλα, οταν λεει interface, εννοει αυτο που σημαινει πραγματικα, δηλαδη το ifstream ειναι μια κλασση (κανονικη κλασση) που δινει τη δυνατοτητα στον προγραμματιστη να διαβασει τα δεδομενα απο ενα αρχειο σαν streams. Ελπιζω να λυθηκε η παρεξηγηση
afnman Δημοσ. 28 Ιανουαρίου 2009 Δημοσ. 28 Ιανουαρίου 2009 Αντιθετα απο την C++ ..στην Java, C# και VB.NET απαγορευεται η πολλαπλη κληρονομικοτητα, γιαυτο το λογο επινοηθηκε η εννοια του interface.
afnman Δημοσ. 28 Ιανουαρίου 2009 Δημοσ. 28 Ιανουαρίου 2009 Αντιθετα απο την C++ ..στην Java, C# και VB.NET απαγορευεται η πολλαπλη κληρονομικοτητα, γιαυτο το λογο επινοηθηκε η εννοια του interface.
Evgenios1 Δημοσ. 28 Ιανουαρίου 2009 Δημοσ. 28 Ιανουαρίου 2009 Διλαδι το interface στη cpp ειναι μια base class (abstrac class) ... μαλιστα... δε με λες , πως διλονετε? ως class ή interface και τελος, οταν λεμε API το I ειναι interface αλα cpp ? για αυτο , σκαλονα σηνεχια στα apis.. κατι μαθαμε και σημερα Ααα... και καατι τελευτεο. Πως διλονω μια κλαση στη cpp ?(οχι static functions) Στη C# το κανεις με το new (classA a=new classA{}, προσπαθησα να το κανω ετσι και στη cpp αλα δεν...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.