sprintf fonksiyonu çalışmıyor!

Başlatan engin_, 24 Haziran 2006, 00:19:00

engin_

Bir arkadaşın hi-tech C de, sprintf fonksiyonu ile karekter katarına dönüştürdüğü kayar noktalı sayının LCD de  gösteremediğini söylemesi üzerine, ben de IAR da denedim. IAR 'da da sonuç aynıydı.

char buffer[8];
float sayi=15,45;

sprintf(buffer,"%f",sayi);

ANSI uyumlu bir derleyici, normal olarak sprintf fonksiyonu sonucu buffer katarını oluşturmalı değil mi?

birkan

Hi-Tech deki sprintf fonksiyonu float sayı tiplerini karakter katarına çeviremiyor. Ancak tamsayı tipleri çevirebiliyor. Sanırım fonksiyonu fazla şişirmemek için böyle bir şey yapmışlar. Eskiden bir ara bende problem yaşamıştım. Sayının tam ve kesirli kısmını birbirinden ayırarak problemi çözmüştüm. Sorunuzda çözüm istememişsiniz, o yüzden uğraşmadım. Çözemezseniz eski defterleri karıştırabilirim. Kolay gelsin.

engin_

Şuan böyle bir gereksinimim olmadığından çözüm aramayada çalışmadım. Sadece paylaşmak ve varsa kısa yoldan bu problem nasıl çözülür, belki bilmediğimiz başka bir yöntemi vardır onu öğrenmek istemiştim.

Tamsayı tipleri çevirebiliyor evet ama bu yeterli değil tabi. SDCC de bunu deneyeceğim bir ara.

Klein

Hatırladığım kadarı ile bu sorun kırılmış Hi-Tech derleyicide oluyordu. Orijinalde yokt. Yada ben öyle hatırlıyorum.