Πρόγραμμα: ravasaki.c (25 μονάδες)
Γράψτε ένα πρόγραμμα που διαβάζει το κείμενο που δίνεται από την πρότυπη είσοδο (stdin) και το τυπώνει στην πρότυπη έξοδο (stdout) προσθέτοντας μια κόκκινη καρδιά στο τέλος κάθε γραμμής. Παράδειγμα εκτέλεσης:
$ cat maravegias.txt
Και τυχαίο και γραφτό,
το μεγάλο μωρό που παίζει με τόξο και βέλη
που χτυπάει και φεύγει όλα τα ανατρέπει,
μα ο χάρτης τον δρόμο σου δείχνει
Του κρυμμένου θησαυρού το ταξίδι τελειώνει,
εκεί που είναι αδύνατο να ‘μαστε μόνοι
Σε κοιτάζω στα μάτια σαν καθρέφτες γυαλίζουν,
τον πιο ωραίο εαυτό μας αντικατοπτρίζουν
$ gcc -o ravasaki ravasaki.c
$ ./ravasaki < maravegias.txt
Και τυχαίο και γραφτό, <3
το μεγάλο μωρό που παίζει με τόξο και βέλη <3
που χτυπάει και φεύγει όλα τα ανατρέπει, <3
μα ο χάρτης τον δρόμο σου δείχνει <3
Του κρυμμένου θησαυρού το ταξίδι τελειώνει, <3
εκεί που είναι αδύνατο να ‘μαστε μόνοι <3
Σε κοιτάζω στα μάτια σαν καθρέφτες γυαλίζουν, <3
τον πιο ωραίο εαυτό μας αντικατοπτρίζουν <3
Σημείωση: στο πρωτότυπο το παράδειγμα είναι στιγμιότυπο τερματικού (εικόνα), όπου το ` <3` στο τέλος κάθε γραμμής εμφανίζεται με κόκκινο χρώμα.
Διαβάστε χαρακτήρα προς χαρακτήρα με getchar μέχρι το EOF: όταν συναντάτε '\n', τυπώστε πρώτα την καρδιά και μετά την αλλαγή γραμμής. Για το κόκκινο χρώμα ψάξτε τις ANSI escape sequences του τερματικού (και θυμηθείτε να επαναφέρετε το χρώμα). Σκεφτείτε τι γίνεται αν η τελευταία γραμμή δεν τελειώνει σε '\n'.
Αριθμός στον οδηγό: Α9.18
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: exam-2023-fall-ex0-q1 ·
Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2023-fall-ex0-q1.html ·
Markdown (GitHub)