StefanosDr Δημοσ. 15 Νοεμβρίου 2011 Δημοσ. 15 Νοεμβρίου 2011 Γεια σας εχω μια εργασια σχετικα με την υλοποιηση της στοιβας στην c++,το προβλημα ειναι οτι οι εντολες που επιθυμει να εκτελεσει ο χρηστης εισαγωνται μεσω ενος αρχειου "input.txt",το οποιο περιεχει σε καθε σειρα και μια εντολη δηλαδη η μορφη του αρχειου ειναι καπως ετσι: QUEUE_CREATE X // δημιουργία ουράς με κωδικό Χ QUEUE_DESTROY X // καταστροφή της ουράς με κωδικό Χ QUEUE_INSERT X,Y // κάνε εισαγωγή στην ουρά με κωδικό Χ το στοιχείο Υ QUEUE_DELETE X // βγάλε το πρώτο στοιχείο από την ουρά με κωδικό Χ QUEUE_READ X // διάβασε το στοιχείο κορυφής από την ουρά με κωδικό Χ QUEUE_GETSIZE X // διάβασε το πλήθος των στοιχείων της ουράς με κωδικό Χ STACK_CREATE X // δημιουργία στοίβας με κωδικό Χ STACK_DESTROY X // καταστροφή της στοίβας με κωδικό Χ STACK_PUSH X,Y // προσθήκη του στοιχείου Υ στη στοίβα Χ STACK_POP X // εξαγωγή του στοιχείου κορυφής από τη στοίβα Χ STACK_READ X // ανάγνωση του στοιχείου κορυφής της στοίβας Χ STACK_GETSIZE X // διάβασε το πλήθος των στοιχείων της στοίβας με κωδικό Χ Το προβλημα ειναι οτι δν μπορω να βρω πως να ξεχωριζω με την getline(); το χ, το οποιο ειναι αριθμος.Στον πινακα οπου θα αποθηκευται πχ η συμβολοσειρα QUEUE_CREATE X μεσω της getline() με μια switch θα μπορω να καταλαβω ποια εντολη της στοιβας πρεπει να εκτελεσει το προγραμμα,αλλα το προβλημα μου ειναι το χ και y.Εχετε καμια ιδεα???Ευχαριστω...
παπι Δημοσ. 15 Νοεμβρίου 2011 Δημοσ. 15 Νοεμβρίου 2011 Ωραια ασκηση!!!! >int main(int,char**) { std::stringstream ss("QUEUE_INSERT 5,6"); std::string cmd; char dummy_comma; ss>>cmd; if(cmd == "QUEUE_INSERT") { int x,y; ss >> x >> dummy_comma >> y; std::cout <<x <<" " <<y; } return 0; } (αντι του ss εσυ θα εχεις το ifstream)
georgemarios Δημοσ. 15 Νοεμβρίου 2011 Δημοσ. 15 Νοεμβρίου 2011 Καλησπέρα Ο παρακάτω κώδικας ανοίγει ενα αρχείο και διαβάζει γραμμή-γραμμή το αρχείο σου. Δες μέσα στο while πως πέρνουν τιμες οι μεταβλητές command και code . Πιστεύω πως εύκολα θα τον προσαρμόσεις στις ανάγκες σου. > int main(int argc, char** argv) { ifstream input("input.txt"); if (input.fail()) { cerr << "\nThe file could not be opened."; return -1; } string str; string command; int code; int i = 0; while (getline(input, str)) { istringstream in(str); string s; in >> command >> code; cout << "Line: " << i << " Command is " << command << " and code is " << code << endl; i++; } return 0; } Καλή συνέχεια
Technology fan Δημοσ. 15 Νοεμβρίου 2011 Δημοσ. 15 Νοεμβρίου 2011 Δομές δεδομένων έ? Αν πας και καμια φορά στο μάθημα του Παπαδόπουλου δε θα χρειαζόσουν αναζήτηση λύσης, εξάλλου είσαι τουλάχιστον στο 3ο εξάμηνο πια...
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα