Εργαστήριο Τεχνολογίας Λογισμικού
0 votes
274 views

Στις ασκήσεις 12 και 13 (crypt1, crypt2) της 5ης Σειράς Ασκήσεων ζητείται να εκτυπώσουμε την εξόδο αφού εισαχθεί όλο το προς κρυπτογράφηση κείμενο; Ή μπορούμε μετά από κάθε γραμμή εισόδου να τυπώνουμε την αντίστοιχη κρυπτογραφημένη γραμμή; Με βάση την εκφώνηση τείνω προς το πρώτο.

Επίσης, πώς θα γνωρίζουμε ότι η είσοδος κειμένου τελείωσε; Νομίζω υπάρχουν δύο πιθανές επιλογές. Είτε ο χρήστης να πατήσει δύο συνεχόμενες φορές Enter είτε να πατήσει Ctrl+D οπότε η getchar() θα μας δώσει EOF.

in progintro by (2.9k points) | 274 views

1 Answer

+1 vote
Best answer
  1. Σε όλες τις ασκήσεις που υποβάλλονται στον grader, μπορείτε να εκτυπώνετε τα αποτελέσματα σταδιακά, χωρίς να περιμένετε να διαβαστεί πρώτα ολόκληρη η είσοδος. Άρα, στις δύο αυτές ασκήσεις, αν θέλετε να επεξεργάζεστε το κείμενο μία γραμμή τη φορά (ή ακόμα και ένα χαρακτήρα τη φορά) και να εκτυπώνετε κατευθείαν το αποτέλεσμα χωρίς να το αποθηκεύετε κάπου, είστε ελεύθεροι να το κάνετε.

  2. Η είσοδος τελειώνει όταν η getchar() επιστρέψει EOF. Το τι θα κάνει ο χρήστης για να το πετύχει αυτό είναι δική του δουλειά και δεν αφορά το πρόγραμμά μας. Αν θέλετε να το δοκιμάσετε στο novice (και άρα αφορά εσάς), τότε θα πρέπει να πατήσετε Ctrl-D μετά την τελευταία γραμμή του κειμένου. Αν θέλετε να το δοκιμάσετε στο σπίτι σας, εξαρτάται από το λειτουργικό σας σύστημα.

    (Οι δύο συνεχόμενες φορές Enter, πραγματικά δεν κατάλαβα από πού προκύπτουν.)

by (9.5k points)
selected by
0

Ευχαριστώ πολύ για την απάντησή σας!

Τα δύο συνεχόμενα Enter δεν προκύπτουν απο κάπου από την εκφώνηση. Απλά σκεφτόμουν διάφορους τρόπους με τους οποίους θα μπορούσε ο χρήστης από το πληκτρολόγιο να πληροφορήσει το πρόγραμμα ότι δεν επιθυμεί να εισάγει άλλο κείμενο. Το "\n\n" δύσκολα θα μπορούσε να είναι τμήμα ενός κειμένου προς κρυπτογράφηση, οπότε θα μπορούσε να χρησιμοποιηθεί για αυτή την χρήση. Βασικά δεν ήξερα πώς ο grader θα δήλωνε ότι η είσοδος τελείωσε, για αυτό ρώτησα.

301 questions

289 answers

288 comments

903 users