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

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

Δημοσ.

Γεια σας εχω μια εργασια σχετικα με την υλοποιηση της στοιβας στην 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.Εχετε καμια ιδεα???Ευχαριστω...

Δημοσ.

Ωραια ασκηση!!!!

>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)

Δημοσ.

Καλησπέρα

Ο παρακάτω κώδικας ανοίγει ενα αρχείο και διαβάζει γραμμή-γραμμή το αρχείο σου. Δες μέσα στο 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;
}

 

Καλή συνέχεια

Δημοσ.

Δομές δεδομένων έ? Αν πας και καμια φορά στο μάθημα του Παπαδόπουλου δε θα χρειαζόσουν αναζήτηση λύσης, εξάλλου είσαι τουλάχιστον στο 3ο εξάμηνο πια...

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

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

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

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

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

Σύνδεση

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

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