Arkadaşlar merhaba,
2*16 lcd de "%" karakterini kullanamıyorum. Program sorunsuz şekilde derleniyor. Yüzde ifadesini nasıl kullanabilirim?
sprintf(s, "Motor Hiz=% %d " ,deger );
(https://i.ibb.co/SPS23B6/Ekran-Al-nt-s.png) (https://imgbb.com/)
Ekranda gözükmesini istediğin % karakterinin başına \ koymayı dene, \% şeklinde.
Hocam sonuç aynı.
(https://i.ibb.co/JrFg2F7/Ekran-Al-nt-s.png) (https://ibb.co/JrFg2F7)
(https://i.ibb.co/ZhTFqk3/Ekran-Al-nt-s-1.png) (https://imgbb.com/)
%% kullanıldığında ekrana 1 tane % yazıyor.
\'%' veya \x25
olması lazım,
x25 demek % işaretinin ASCII hexadecimal karşılığı,
\ ise kaçış karakteri.
sprintf(s, "Motor Hiz=\x25 %d " ,deger );
Alıntı yapılan: RaMu - 30 Ekim 2019, 20:02:09\'%' veya \x25
olması lazım,
x25 demek % işaretinin ASCII hexadecimal karşılığı,
\ ise kaçış karakteri.
sprintf(s, "Motor Hiz=\x25 %d " ,deger );
Dediğiniz şekilde düzenledim olmadı.
(https://i.ibb.co/X2GPJJt/Ekran-Al-nt-s.png) (https://imgbb.com/)
sprintf(s, "Motor Hiz=\x25" "%d" ,deger );
veya
sprintf(s, "Motor Hiz=\045 %d" ,deger );
//0 ile başlıyor sayı yani Octal (Octal 045 = Ascii %)
Alıntı yapılan: RaMu - 31 Ekim 2019, 09:27:11sprintf(s, "Motor Hiz=\x25" "%d" ,deger );
veya
sprintf(s, "Motor Hiz=\045 %d" ,deger );
//0 ile başlıyor sayı yani Octal (Octal 045 = Ascii %)
Ayrı ayrı iki kodu da denedim. Sonuç olumsuz.
sprintf(s, "Motor Hiz=%%%d " ,deger );
Bu şekilde yazdığım da çalıştı.
İlginç, bunca zamandır yanlış biliyormuşum. İnternette araştırdım, printf içinde % basmak için geçerli yöntem %% şeklinde kullanmak imiş. Başka yöntem aramaya gerek yok. \% şeklide bir escape sequence de yokmuş zaten.
Kaynak: http://www.cplusplus.com/reference/cstdio/printf/