Επισκέπτης Δημοσ. 29 Ιουλίου 2018 Δημοσ. 29 Ιουλίου 2018 Χρησιμοποιώ την εντολή system("color xy"); για να δώσω χρώμα σε ενότητες ενός προγράμματος C. Όπου x, y, δύο μονοψήφιοι αριθμοί. Το x ορίζει το χρώμα του φόντο και το y ορίζει το χρώμα των γραμμάτων. Φαίνεται πολύ πρακτικό όταν αλλάζω ενότητα από τη θέση του χρήστη. Αυτά όμως είναι μόνο δυο χρώματα. . . Η ερώτηση είναι, εάν μπορεί να δοθεί κι ένα τρίτο διαφορετικό χρώμα σε μια ή περισσότερες γραμμές της επιλογής μου.
k33theod Δημοσ. 30 Ιουλίου 2018 Δημοσ. 30 Ιουλίου 2018 Η system καλεί εντολές του συστήματος οπότε αν δώσεις στην consola help color θα δεις τι τιμές μπορείς να δώσεις στο color 0 = Black 8 = Gray 1 = Blue 9 = Light Blue 2 = Green A = Light Green 3 = Aqua B = Light Aqua 4 = Red C = Light Red 5 = Purple D = Light Purple 6 = Yellow E = Light Yellow 7 = White F = Bright White Αν θες να πάρεις χρώματα στην consola σε αύτά που τυπώνεις θα χρησιμοποιήσεις την windows.h Παράδειγμα χρήσης https://stackoverflow.com/questions/8765938/colorful-text-using-printf-in-c
Επισκέπτης Δημοσ. 30 Ιουλίου 2018 Δημοσ. 30 Ιουλίου 2018 10 λεπτά πριν, k33theod είπε Η system καλεί εντολές του συστήματος οπότε αν δώσεις στην consola help color θα δεις τι τιμές μπορείς να δώσεις στο color Σ' ευχαριστώ k33theod ! Αυτές τις τιμές χρησιμοποιώ. Η ερώτηση αφορά την εισαγωγή ενός τρίτου χρώματος... αν γίνεται, επιλεκτικά για μια ή περισσότερες γραμμές της επιλογής μας.
Moderators Kercyn Δημοσ. 30 Ιουλίου 2018 Moderators Δημοσ. 30 Ιουλίου 2018 Δες την ncurses και άσε τα μαγικά με την κονσόλα των windows.
Επισκέπτης Δημοσ. 30 Ιουλίου 2018 Δημοσ. 30 Ιουλίου 2018 14 λεπτά πριν, Kercyn είπε Δες την ncurses και άσε τα μαγικά με την κονσόλα των windows. Δεν κατέω, ηντάναι τουτονά που λες 😃
k33theod Δημοσ. 30 Ιουλίου 2018 Δημοσ. 30 Ιουλίου 2018 (επεξεργασμένο) Tony Επειδή αντιλαμβάνομαι ότι έχεις δυσκολίες με τα Αγγλικά ; 🙄 Έχω κάνει μια συνάρτηση που αλλάζει τα χρώματα της consolas #include <stdio.h> #include<windows.h>//χρειάζεται πάντα void change_color( int );//χρειάζεται πάντα int main () { change_color(0x1B); //H consola παίρνει τα χρώματα και τα χρησιμοποιεί μέχρι να τα αλλάξεις printf("Χρωματιστό κείμενο \n"); printf("Τα χρώματα παραμένουν μέχρι να αλλάξουν \n"); change_color(0x0f); printf("Άλλο χρώμα\n"); change_color(0x3a); printf("Άλλο χρώμα\n"); return 0; } //Έχτρα συνάρτηση χρειάζεται πάντα void change_color( int color){ HANDLE hConsole; hConsole = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hConsole, color); } Να συμπληρώσω ότι είναι μόνο για τα windows Επεξ/σία 30 Ιουλίου 2018 από k33theod
Επισκέπτης Δημοσ. 31 Ιουλίου 2018 Δημοσ. 31 Ιουλίου 2018 (επεξεργασμένο) 1 ώρα πριν, k33theod είπε Tony Επειδή αντιλαμβάνομαι ότι έχεις δυσκολίες με τα Αγγλικά ; 🙄 Έχω κάνει μια συνάρτηση που αλλάζει τα χρώματα της consolas Τέλειο! Αυτό ακριβώς εννοούσα. Ναι, έχω ένα θεματάκι με τ' αγγλικά προς το παρόν. Σ' ευχαριστώ! 😀 change_color(0x1c); printf("Χρωματιστό κείμενο 1 \n"); change_color(0x12); printf("Χρωματιστό κείμενο 2 \n"); change_color(0x13); printf("Χρωματιστό κείμενο 3 \n"); change_color(0x14); printf("Χρωματιστό κείμενο 4 \n"); change_color(0x15); printf("Χρωματιστό κείμενο 5 \n"); change_color(0x16); printf("Χρωματιστό κείμενο 6 \n"); change_color(0x17); printf("Χρωματιστό κείμενο 7 \n"); change_color(0x18); printf("Χρωματιστό κείμενο 8 \n"); change_color(0x19); printf("Χρωματιστό κείμενο 9 \n"); change_color(0x1A); printf("Χρωματιστό κείμενο 10 - A\n"); change_color(0x1B); printf("Χρωματιστό κείμενο 11 - B \n"); change_color(0x1C); printf("Χρωματιστό κείμενο 12 - C \n"); change_color(0x1D); printf("Χρωματιστό κείμενο 13 - D \n"); change_color(0x1E); printf("Χρωματιστό κείμενο 14 - E \n"); change_color(0x1F); printf("Χρωματιστό κείμενο 15 - F \n"); Επεξ/σία 31 Ιουλίου 2018 από Επισκέπτης
k33theod Δημοσ. 31 Ιουλίου 2018 Δημοσ. 31 Ιουλίου 2018 Tony Tony μου θυμίζει ένα παιδικό τραγούδι το Johny Johny yes papa Αντί αυτό{ change_color(0x1c); printf("Χρωματιστό κείμενο 1 \n"); change_color(0x12); printf("Χρωματιστό κείμενο 2 \n"); change_color(0x13); printf("Χρωματιστό κείμενο 3 \n"); change_color(0x14); printf("Χρωματιστό κείμενο 4 \n"); change_color(0x15); printf("Χρωματιστό κείμενο 5 \n"); change_color(0x16); printf("Χρωματιστό κείμενο 6 \n"); change_color(0x17); printf("Χρωματιστό κείμενο 7 \n"); change_color(0x18); printf("Χρωματιστό κείμενο 8 \n"); change_color(0x19); printf("Χρωματιστό κείμενο 9 \n"); change_color(0x1A); printf("Χρωματιστό κείμενο 10 - A\n"); change_color(0x1B); printf("Χρωματιστό κείμενο 11 - B \n"); change_color(0x1C); printf("Χρωματιστό κείμενο 12 - C \n"); change_color(0x1D); printf("Χρωματιστό κείμενο 13 - D \n"); change_color(0x1E); printf("Χρωματιστό κείμενο 14 - E \n"); change_color(0x1F); printf("Χρωματιστό κείμενο 15 - F \n"); } Αυτό for (int color=0x10;color<0x20; color++){ change_color(color); printf("Χρωματιστό κείμενο %X\n", color); }
Επισκέπτης Δημοσ. 31 Ιουλίου 2018 Δημοσ. 31 Ιουλίου 2018 (επεξεργασμένο) 59 λεπτά πριν, k33theod είπε Tony Tony μου θυμίζει ένα παιδικό τραγούδι το Johny Johny yes papa 😀 😀 χαχαχα... καλό!!! 59 λεπτά πριν, k33theod είπε for (int color=0x10;color<0x20; color++){ change_color(color); printf("Χρωματιστό κείμενο %X\n", color); } Έδωσες μάθημα!!! Σ' ευχαριστώ! -- ΔεΝ Τρέχει Εε... Επεξ/σία 31 Ιουλίου 2018 από Επισκέπτης
Moderators Kercyn Δημοσ. 31 Ιουλίου 2018 Moderators Δημοσ. 31 Ιουλίου 2018 22 ώρες πριν, tony_dim_2018 είπε Δεν κατέω, ηντάναι τουτονά που λες 😃 Βιβλιοθήκη που σου επιτρέπει να διαχειρίζεσαι την κονσόλα. Νομίζω είναι PDcurses για windows.
Επισκέπτης Δημοσ. 31 Ιουλίου 2018 Δημοσ. 31 Ιουλίου 2018 44 λεπτά πριν, Kercyn είπε Βιβλιοθήκη που σου επιτρέπει να διαχειρίζεσαι την κονσόλα. Νομίζω είναι PDcurses για windows. Σ' ευχαριστώ! 😃 😀
Επισκέπτης Δημοσ. 4 Αυγούστου 2018 Δημοσ. 4 Αυγούστου 2018 Απ' τη γραμμή που κάνουμε την αλλαγή χρώματος και κάτω απ' αυτήν, όλο το χρώμα είναι το ίδιο μέχρι ν' αλλάξει με νέα εντολή, αλλά οι εντολές που έχω στη διάθεση μου, είναι μόνο οι παραπάνω, και καμιά από αυτές δεν επαναφέρει το χρώμα του συστήματος. Ποια είναι λοιπόν η εντολή για την επαναφορά στο χρώμα του συστήματος?? 🙄
Predatorkill Δημοσ. 5 Αυγούστου 2018 Δημοσ. 5 Αυγούστου 2018 Προσπαθησα πολυ αλλα δε κρατηθηκα, sorry. Αυτά που αναφέρεις είναι θέματα της διαχείρισης του φόρουμ και δεν μ' αφορούν για όσο δεν κάνω κάτι που παραβιάζει τους όρους της κοινότητας. Γεγονός είναι ότι έχουμε εδώ, 1/2 σελίδας Α4 που κατανάλωσες για να μου εξηγήσεις ότι καταναλώνω άσκοπα χώρο, συν 1/4 της σελίδας που κατανάλωσα για να σου απαντήσω, συν 1/2 της σελίδας όταν επανήλθες, συν 1/4 η παρούσα απάντηση μου, φτάσαμε στη μιάμιση σελίδα άσχετων σχολιασμών, συν τον χώρο από τις παραθέσεις σύνολο σελίδων επί 2 ίσον 3 σελίδες χώρου που καταναλώθηκε άσκοπα, ενώ θα μπορούσε να χρησιμοποιηθεί η μια σελίδα για συζήτηση εντός θέματος εδώ (και να κλείσει το θέμα), και οι δύο σελίδες χώρου που περισσεύουν απ' τον υπολογισμό, να χρησιμοποιηθούν από άλλους χρήστες για περίπου 8 σύντομες ερωτήσεις και να λυθούν αντίστοιχες απορίες μελών. Άρα λοιπόν καταλήγοντας, μια παρέμβαση εκτός θέματος, όσο καλοπροαίρετη κι αν είναι, καταναλώνει πολύ περισσότερο χώρο μνήμης από μια ερώτηση που αναρτήθηκε λανθασμένα και για την οποία θα μπορούσε να παρέμβει Πχ διαγράφοντας την, ένας διαχειριστής. Αν τώρα συνυπολογίσεις και το ενδεχόμενο εκτροχιασμού της συζήτησης, ξεφεύγουμε τελείως. Κάνε όσες αναφορές θέλεις, φέρε και τους φίλους σου να σε βοηθήσουν.
Επισκέπτης Δημοσ. 5 Αυγούστου 2018 Δημοσ. 5 Αυγούστου 2018 (επεξεργασμένο) 46 λεπτά πριν, Predatorkill είπε Προσπαθησα πολυ αλλα δε κρατηθηκα, sorry. Θα πήγαινα στο καφενείο, αλλά εκεί είναι όλοι εκτός θέματος... Επεξ/σία 5 Αυγούστου 2018 από Επισκέπτης
k33theod Δημοσ. 10 Αυγούστου 2018 Δημοσ. 10 Αυγούστου 2018 Στις 4/8/2018 στις 5:08 ΜΜ, tony_dim_2018 είπε Απ' τη γραμμή που κάνουμε την αλλαγή χρώματος και κάτω απ' αυτήν, όλο το χρώμα είναι το ίδιο μέχρι ν' αλλάξει με νέα εντολή, αλλά οι εντολές που έχω στη διάθεση μου, είναι μόνο οι παραπάνω, και καμιά από αυτές δεν επαναφέρει το χρώμα του συστήματος. Ποια είναι λοιπόν η εντολή για την επαναφορά στο χρώμα του συστήματος?? 🙄 σίγουρα το επαναφέρει έχεις στη διάθεσή σου 0χ00 εώς 0χff. Όλες οι πληροφορίες που αφορούν στην consola και περάστηκαν στο windows.h είναι εδώ https://docs.microsoft.com/en-us/windows/console/ Για το συγκεκριμένο που ρωτάς δεν υπάρχει μια συγκεκριμένη εντολή. Πρέπει να πάρεις στην αρχή της εφαρμογής σου από τις πληροφορίες της consolas το χρώμα να το βάλεις σε μια μεταβλητή και όποτε θες το επαναφέρεις CONSOLE_SCREEN_BUFFER_INFO csbi;//κάνεις μεταβλητή για πληροφορίες οθόνης WORD arxiko_xroma;//κάνεις μεταβλητή για το χρώμα GetConsoleScreenBufferInfo(hStdout, &csbi);//διαβάζει τις πληροφορίες arxiko_xroma= csbi.wAttributes;//διαβάζει το χρώμα SetConsoleTextAttribute(hStdout,arxiko_xroma);//κάνει το χρώμα arxiko_xroma
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα