Aslında olay çok basit.Karakter desteğini sağlamak için setlocale() fonksiyonunu çağıracağız.Bunu yapmak için de kaynak koda locale.h başlık dosyasını eklememiz yeterli.
Örnek program:
// Konsola Türkçe karakter yazdırmak. by undeadhacker @ CW
#include <stdio.h>
#include <locale.h>
int main(){
setlocale(LC_ALL,"Turkish"); // bütün iş burada bitiyor
printf("İster Türkçe yazarım ");
printf("ister İngilizce...\\\\\\\\n");
system("pause");
return 0;
}
Kodları Dev-C++ ta derledim.
Biraz daha açıklayayım.
#include <locale.h> Bu kod setlocale() fonksiyonunu kullamamızı sağlıyor.Bütün işi setlocale() fonksiyonu yapıyor.Fonksiyona birinci parametre olarak LC_ALL değerini gönderiyoruz.Bu değer locale.h dosyası içinde tanımlanmış bir değerdir ve 0a (sıfır) eşittir.Bunun yerine LC_CTYPE de yazabilirdik.Fonksiyonu LC_CTYPE değeri ile çağırsaydık, yine Türkçe karakter desteği sağlamış olurduk."Turkish" parametresi ile de Türkçe desteği vermek istediğimizi belirttik.
Uyarı:Bazı sistemlerde bu yöntem çalışmıyor.Mesela ingilizce Vista da çalışan bu kod ingilizce XP de çalışmadı.Ama benim sistemde bi yerelleştirme problemi olabilir.Sizin sisteminizde problem olacağını sanmam.Problem çıkarsa yardım etmek isterim.
setlocale()
Örnek program:
// Konsola Türkçe karakter yazdırmak. by undeadhacker @ CW
#include <stdio.h>
#include <locale.h>
int main(){
setlocale(LC_ALL,"Turkish"); // bütün iş burada bitiyor
printf("İster Türkçe yazarım ");
printf("ister İngilizce...\\\\\\\\n");
system("pause");
return 0;
}
Kodları Dev-C++ ta derledim.
Biraz daha açıklayayım.
#include <locale.h> Bu kod setlocale() fonksiyonunu kullamamızı sağlıyor.Bütün işi setlocale() fonksiyonu yapıyor.Fonksiyona birinci parametre olarak LC_ALL değerini gönderiyoruz.Bu değer locale.h dosyası içinde tanımlanmış bir değerdir ve 0a (sıfır) eşittir.Bunun yerine LC_CTYPE de yazabilirdik.Fonksiyonu LC_CTYPE değeri ile çağırsaydık, yine Türkçe karakter desteği sağlamış olurduk."Turkish" parametresi ile de Türkçe desteği vermek istediğimizi belirttik.
Uyarı:Bazı sistemlerde bu yöntem çalışmıyor.Mesela ingilizce Vista da çalışan bu kod ingilizce XP de çalışmadı.Ama benim sistemde bi yerelleştirme problemi olabilir.Sizin sisteminizde problem olacağını sanmam.Problem çıkarsa yardım etmek isterim.
setlocale()