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

Χρώματα στην C


Επισκέπτης

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

Επισκέπτης

Χρησιμοποιώ την εντολή system("color xy"); για να δώσω χρώμα σε ενότητες ενός προγράμματος C.

Όπου x, y, δύο μονοψήφιοι αριθμοί.

Το x ορίζει το χρώμα του φόντο και το y ορίζει το χρώμα των γραμμάτων.

Φαίνεται πολύ πρακτικό όταν αλλάζω ενότητα από τη θέση του χρήστη.

Αυτά όμως είναι μόνο δυο χρώματα.

. .

Η ερώτηση είναι, εάν μπορεί να δοθεί κι ένα τρίτο διαφορετικό χρώμα σε μια ή περισσότερες γραμμές της επιλογής μου.

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Η 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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Επισκέπτης
10 λεπτά πριν, k33theod είπε

Η system καλεί εντολές του συστήματος οπότε αν δώσεις στην consola help color θα δεις τι τιμές μπορείς να δώσεις στο color

Σ' ευχαριστώ k33theod !

Αυτές τις τιμές χρησιμοποιώ.

Η ερώτηση αφορά την εισαγωγή ενός τρίτου χρώματος... αν γίνεται, επιλεκτικά για μια ή περισσότερες γραμμές της επιλογής μας.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Επισκέπτης
14 λεπτά πριν, Kercyn είπε

Δες την ncurses και άσε τα μαγικά με την κονσόλα των windows.

Δεν κατέω, ηντάναι τουτονά που λες

😃

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

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

 

Capture.JPG

Να συμπληρώσω ότι είναι μόνο για τα windows

 

Επεξ/σία από k33theod
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Επισκέπτης
Δημοσ. (επεξεργασμένο)
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");

 

 

 

α.PNG

Επεξ/σία από Επισκέπτης
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Επισκέπτης
Δημοσ. (επεξεργασμένο)
59 λεπτά πριν, k33theod είπε

Tony Tony μου θυμίζει ένα παιδικό τραγούδι το Johny Johny yes papa 

😀 😀

χαχαχα... καλό!!!

59 λεπτά πριν, k33theod είπε

for (int color=0x10;color<0x20; color++){ change_color(color); printf("Χρωματιστό κείμενο %X\n", color); }

Έδωσες μάθημα!!!

Σ' ευχαριστώ!

-- ΔεΝ Τρέχει Εε... :)

 

Επεξ/σία από Επισκέπτης
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators
22 ώρες πριν, tony_dim_2018 είπε

Δεν κατέω, ηντάναι τουτονά που λες

😃

Βιβλιοθήκη που σου επιτρέπει να διαχειρίζεσαι την κονσόλα. Νομίζω είναι PDcurses για windows.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Επισκέπτης
44 λεπτά πριν, Kercyn είπε

Βιβλιοθήκη που σου επιτρέπει να διαχειρίζεσαι την κονσόλα. Νομίζω είναι PDcurses για windows.

Σ' ευχαριστώ!

😃 😀

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Απ' τη γραμμή που κάνουμε την αλλαγή χρώματος και κάτω απ' αυτήν, όλο το χρώμα είναι το ίδιο μέχρι ν' αλλάξει με νέα εντολή, αλλά οι εντολές που έχω στη διάθεση μου, είναι μόνο οι παραπάνω, και καμιά από αυτές δεν επαναφέρει το χρώμα του συστήματος.

Ποια είναι λοιπόν η εντολή για την επαναφορά στο χρώμα του συστήματος?? 🙄

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Προσπαθησα πολυ αλλα δε κρατηθηκα, sorry.

Αυτά που αναφέρεις είναι θέματα της διαχείρισης του φόρουμ και δεν μ' αφορούν για όσο δεν κάνω κάτι που παραβιάζει τους όρους της κοινότητας. 

Γεγονός είναι ότι έχουμε εδώ, 1/2 σελίδας Α4 που κατανάλωσες για να μου εξηγήσεις ότι καταναλώνω άσκοπα χώρο, συν 1/4 της σελίδας που κατανάλωσα για να σου απαντήσω, συν 1/2 της σελίδας όταν επανήλθες, συν 1/4 η παρούσα απάντηση μου, φτάσαμε στη μιάμιση σελίδα άσχετων σχολιασμών, συν τον χώρο από τις παραθέσεις σύνολο σελίδων επί 2 ίσον 3 σελίδες χώρου που καταναλώθηκε άσκοπα, ενώ θα μπορούσε να χρησιμοποιηθεί η μια σελίδα για συζήτηση εντός θέματος εδώ (και να κλείσει το θέμα), και οι δύο σελίδες χώρου που περισσεύουν απ' τον υπολογισμό, να χρησιμοποιηθούν από άλλους χρήστες για περίπου 8 σύντομες ερωτήσεις και να λυθούν αντίστοιχες απορίες μελών. 

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

Κάνε όσες αναφορές θέλεις, φέρε και τους φίλους σου να σε βοηθήσουν.

giphy.gif

giphy.gif

giphy.gif

 

giphy.gif

giphy.gif

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
46 λεπτά πριν, Predatorkill είπε

Προσπαθησα πολυ αλλα δε κρατηθηκα, sorry.

Θα πήγαινα στο καφενείο, αλλά εκεί είναι όλοι εκτός θέματος...  

 

 

 

Επεξ/σία από Επισκέπτης
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στις 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

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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