ANSI escape
- C kursu
- İleri seviye
- Ders 46/83
- 5 dk
ANSI kaçış dizileriyle renk ve imleç öğrenirsin.
ANSI escape dizileri
ANSI kaçış dizileri, terminalde renk, imleç konumu ve stil değiştirmek için kullanılır. Hepsi ESC (onluk 27, sekizlik \033) karakteriyle başlar; ardından [ ve komut gelir. Örneğin \033[31m metni kırmızı yapar, \033[0m tüm biçimleri sıfırlar.
Renk kodları: 30 siyah, 31 kırmızı, 32 yeşil, 33 sarı, 34 mavi. İmleç hareketi: \033[H sol üst köşe, \033[2J ekranı temizler. C'de printf("\033[31mkırmızı\033[0m\n") ile yazdırırsın. Test ortamında ESC karakteri görülmez ama çıktı deterministiktir.
Renk ve sıfırlama
Renk kullanmanın temel yöntemi: aç, yaz, sıfırla. Önce \033[31m ile rengi açar, metni yazarsın, sonra \033[0m ile biçimi sıfırlarsın. Aksi halde sonraki tüm çıktılar renkli kalır.
C'de bunu tek printf ile yapabilirsin: printf("\033[31mkırmızı\033[0m\n");. Burada \033 ESC karakterini, \n yeni satırı üretir. Test ortamında bu çıktı ESC karakteri içerir; beklenen çıktıyı yazarken \u001b ile gösterilir. Çıktı deterministiktir.
Uygulama Renkli metin yazdır
printf("\033[31mkırmızı\033[0m\n"); ile kırmızı renkte metin yazdır. Renk kodundan sonra \033[0m ile sıfırlama yap.
Başlangıç kodu
#include <stdio.h>
// kırmızı metin yazdır ve sıfırla
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
int main(void) {
printf("\033[31mkırmızı\033[0m\n");
return 0;
}Beklenen çıktı
[31mkırmızı[0m
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangi ANSI kodu kırmızı renk verir?
- 30
- 31 Doğru cevap
- 33
- 32
Açıklama: 31 kırmızı rengin kodudur.
2 ANSI kodlarını eşle
| Kavram | Anlamı |
|---|---|
\033[31m |
Kırmızı |
\033[0m |
Sıfırla |
\033[2J |
Ekranı sil |
\033[H |
Sol üst |
3 Kırmızı renk
printf("\033[____mkırmızı\033[0m
");
printf("\033[31mkırmızı\033[0m
");
Açıklama: 31 kırmızı rengin ANSI kodudur.