Şimdi Ara

C Türkçe Karakter Sorunu

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir (1 Mobil) - 2 Masaüstü1 Mobil
5 sn
16
Cevap
0
Favori
8.834
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Codeblocks kullanıyorum.Compiler GCC.Fakat şu türkçe karakter sorununu bir çözemedim.Google'dan diğer forumlardai konuları,çözümleri felan denedim.Bir kısmı oldukça fazla kod içeriyordu onları hiç denemedim bile fakat pratik olanlarda işe yaramıyor.

    2-3 satır kodla scanf,printf,getchar gibi fonksiyonlarda türkçe karakterleri nasıl kullanabilirim?(ş,ğ,ı,ü,ç,ö)



  • Yapay Zekanın Yanıtı

    C++'ta Türkçe Karakter Sorunu

    C++ programlama dilinde Türkçe karakterleri kullanırken, bazı sorunlar meydana gelebilir. Bu sorunlar, işletim sistemi ayarları, kod sayfaları ve derleyici yapılandırması ile ilgili olabilir.

    Kod Sayfaları

    C++'ta Türkçe karakterleri doğru bir şekilde görüntülemek için, doğru kod sayfasının kullanılması gerekir. Windows işletim sistemlerinde, genellikle "Windows-1254" kod sayfası kullanılır. Bu kod sayfası, Türkçe karakterleri destekler.

    Derleyici Yapılandırması

    Derleyici yapılandırman, C++ kodunda Türkçe karakterleri doğru bir şekilde işlemek için optimize edilmelidir. Visual Studio gibi derleyicilerde, "Çok Baytlı Karakter Kümesini Etkinleştir" seçeneği etkinleştirilmelidir.

    İşletim Sistemi Ayarları

    İşletim sisteminin bölgesel ayarları, C++'ta Türkçe karakterlerin doğru görüntülenmesini etkileyebilir. Windows işletim sistemlerinde, "Bölge" ayarlarının "Türkiye" olarak ayarlanması gerekir.

    Çözüm

    C++'ta Türkçe karakter sorununu çözmek için şu adımlar izlenmelidir:

    • Doğru kod sayfasının kullanıldığından emin olun.
    • Derleyici yapılandırmasını Türkçe karakterleri işleyecek şekilde ayarlayın.
    • İşletim sistemi bölgesel ayarlarını "Türkiye" olarak yapılandırın.

    Bu adımlar uygulandıktan sonra, C++ kodunda Türkçe karakterler doğru bir şekilde görüntülenmelidir.

    Yapay Zekanın Yanıtını Genişlet
  • locale.h kütüphanesini tanımla sonra fonksiyon içinde setlocale(LC_ALL,"Turkish"); kullan.

    #include <stdio.h> 
    #include <locale.h>

    int main()
    {
    setlocale(LC_ALL,"Turkish");

    printf("\n\tÖöçÇııİİşŞğĞüÜ\n\n");

    return 0;
    }
  • Hocam onu denedim olmadı nedense
  • Hallettim hocam.Derleyici ayarlardan UTF-8'i windows-1254 yaptım sorun çözüldüBirde scanf ile türkçe karakterleri okutmayı deneyeyim.
  • #include <locale.h>
    Yeşil tarafa yazılan kütüphaneyi ata
    setlocale(LC_ALL,"turkish")
    kod olarakta bunu yaz tertemiz ama ; ile kapatmayı unutma :)
  • Hiç biri işe yaramadı.
  • DoubleDragon D kullanıcısına yanıt
    GCC'nin son sürümü olan GCC-9.2'ye geç full unicode desteği vardır, program kodu içinde de, program çıktılarında da serbestçe Türkçe karakter kullanabilirsin. gcc-10 kurulu Mac bilgisayarımdan bir örnek:

     C Türkçe Karakter Sorunu


    gcc-9 ve 10 C/C++'taki birçok eksiği giderdi ve Python kadar kullanılşlı hale geldi.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • Yapay Zeka’dan İlgili Konular
    Oyunda Türkçe karakter sorunu...
    17 yıl önce açıldı
    Daha Fazla Göster
  • Türkçe harf sıkıntısı Windows'da var. GCC'nin 9.2 veya 10 versiyonu çıkmış olabilir. GCC'yi doğrudan Windows'da kullanamayız. Windows'da GCC'nin Windows uyarlaması olan MinGW kullanılıyor. MinGW'nin zaten en son versiyonunu kullanıyorum.
  • quote:

    Orijinalden alıntı: DoubleDragon

    Türkçe harf sıkıntısı Windows'da var. GCC'nin 9.2 veya 10 versiyonu çıkmış olabilir. GCC'yi doğrudan Windows'da kullanamayız. Windows'da GCC'nin Windows uyarlaması olan MinGW kullanılıyor. MinGW'nin zaten en son versiyonunu kullanıyorum.
    Okey, aynı kodu hiç dokunmadan Windows 7 laptop'umda derleyip denedim:
     C Türkçe Karakter Sorunu

    gördüğünüz gibi tüm Türkçe karakterleri sorunsuz gösteriyor.
    Demek ki bu harf sıkıntısı Window'ta yokmuş ve GCC 'yi Windows'ta doğrudan kullanabiliyormuşuz :)

    MinGW ==> Windows için derlenmiş GCC'dir ve Mini Gcc for Windows'un kısaltmasıdır.

    < Bu ileti mini sürüm kullanılarak atıldı >




  • Windows'da doğrudan GCC çalışmaz derken gcc komutu çalışmaz demiyorum. MinGW kurulunca gcc komutu verebiliyorsun.

    GCC, GNU Compiler Collection demektir. Aslen GNU/Linux ve BSD için yapılmıştır. Windows ortamına da taşınmıştır. Windows'daki adı MinGW'dir. MinGW'nin en yüksek versiyonu şimdiki durumda 8.2.
    GCC'nin 9 veya 10 versiyonu çıktı diye indirip Windows'da kullanamıyoruz. MinGW versiyonunu beklememiz lazım. Yada başka derleyici kullanmak lazım.

    Windows 7 kullandığın laptopta gcc -v komutu ver bakalım hangi versiyon kullanıyorsun?

    Ayrıca programı emacs içinden çalıştırmışsın. cmd komut istemcisini aç çalıştır bakalım Türkçe harfler doğru şekilde görünüyor mu?
  • DoubleDragon D kullanıcısına yanıt
    Emacs 'in ayarlarında

    set-default-coding-systems ==> utf-8
    set-terminal-coding-system ==> utf-8
    set-locale-environment ==> "en.UTF-8"

    yaptığım için Emacs tüm giriş çıkış verilerini Unicode olarak yorumluyor, o sayede gcc'nin girdi/çıktılarını doğru gösteriyor. Editörler zaten bu tür şeyler için kullanılmaz mı? Ben Emacs'i ilk başta her bir programlama diline özel geliştirme ortamı olduğu ve son derece hızlı çalıştığı için kullanmaya başladım fakat bu tür ayarları da bonusu oldu :)

    CMD.exe sadece bir terminal ve bendeki 2009 versiyonu, 2019'da çıkmış gcc-9.2 Unicode karakterlerini nasıl doğru göstersin, doğal olarak doğru göstermeyecektir.

    Windows 7 laptopumdaki gcc versiyonu:

    > gcc -v
    COLLECT_GCC=C:\Programs\gcc-9.2.0\bin\gcc.exe
    COLLECT_LTO_WRAPPER=c:/programs/gcc-9.2.0/bin/../libexec/gcc/x86_64-w64-mingw32/9.2.0/lto-wrapper.exe
    Target: x86_64-w64-mingw32
    Configured with: ../../src/gcc-9.2.0/configure --host=x86_64-w64-mingw32 --enable-languages=c,c++ --enable-seh-exceptions --enable-threads=posix --disable-nls --disable-shared --enable-static --enable-fully-dynamic-string --enable-lto --enable-plugins --enable-libgomp --with-dwarf2 --enable-mingw-wildcard=platform --disable-win32-registry --enable-version-specific-runtime-libs --prefix=/mingw64-64 --with-sysroot=/mingw64-64 --target=x86_64-w64-mingw32 --enable-targets=all --enable-checking=release --with-gmp=/usr/new-gcc/lib/gmp-6.1.2 --with-mpfr=/usr/new-gcc/lib/mpfr-4.0.2 --with-mpc=/usr/new-gcc/lib/mpc-1.1.0 --with-isl=/usr/new-gcc/lib/isl-0.18 --with-cloog=/usr/new-gcc/lib/cloog-0.18.4 --with-host-libstdcxx='-lstdc++ -lsupc++' --disable-cloog-version-check --enable-cloog-backend=isl
    Thread model: posix
    gcc version 9.2.0 (GCC)

    Yani Windows için gcc-9.2 coktan yayınlandı, gcc-10.0 de yakında yayınlanır. Bu arada gcc-10.0, GNU.org'ta hala experimental olarak geçmektedir yani resmi dağıtım olarak yayınlanmadı. Mac'te ben özel olarak derledim sadece.

    < Bu ileti mini sürüm kullanılarak atıldı >




  • cmd ekranda Türkçe harfleri doğru gösteren ekran görüntüsünü göremedim. Diyorsun ki "CMD.exe sadece bir terminal ve bendeki 2009 versiyonu, 2019'da çıkmış gcc-9.2 Unicode karakterlerini nasıl doğru göstersin, doğal olarak doğru göstermeyecektir." yani göstermiyor.

    Bu da Windows 10'un cmd ekranı

     C Türkçe Karakter Sorunu


    Bunda da Türkçe harfler doğru gözükmüyor. Windows 10 ne zaman çıktı? Benim kullandığım gcc versiyonu 8.2. Hangisi eski olduğu için göstermiyor?

    Gerçek şu ki Windows'un cmd ekranı utf-8 desteklemiyor. Windows 10 olsa bile desteklemiyor. Acı ama gerçek. Belki ilerde destekler. Yada Türkçe harfleri göstermek için başka bir yol bulmak lazım.




  • Ben bariz Bir sıkıntı göremedimhttps://store.donanimhaber.com/ca/9d/4f/ca9d4f1b147be2dee8d8ee24512fd5f0.gif




    < Bu mesaj bu kişi tarafından değiştirildi Gökşen PASLI -- 3 Kasım 2019; 20:0:54 >




  • DoubleDragon D kullanıcısına yanıt
    Ufak bir düzeltme yapıyorum: CMD.exe 'nin kullandığı karakter seti ki bunun "Win32 API Console OutputCP" şeklinde genel bi adı var onu program içinden doğru olarak ayarladığın takdirde CMD.exe Türkçeyi düzgün gösterir.

    Kullandığın program ne olursa olsun (C, Python, Perl, vs) o programın içinde gerekli yordamları kullanarak bu "Win32 API Console OutputCP" değerini '65001' e ayarlamalısın (başka degerler de mümkün olabilir, fakat ben 65001'i denedim) o durumda CMD.exe Türkçe karakterleri doğru çıkarır. Perl için örnek:
     C Türkçe Karakter Sorunu

    Oradaki "Türkçe karakter deneme<satır başı> Ağrı'dan İstanbul'a" söz öbeği Perl kodunda aynen öyle girdim.

    Buradan program içinden gerekli ayarları yapmak şartıyla 2009 dahil CMD.exeTürkçe karakterleri doğru gösterir sonucu çıkar.

    < Bu ileti mini sürüm kullanılarak atıldı >




  • 2013'teki gönderilere bakmadım ancak
    @Gökşen PASLI in gönderisi sonrası bakınca, program içine

    #include <locale.h>
    ve main içinde
    setlocale(LC_ALL,"Turkish")
    eklenince CMD.exe doğru basıyor.
    Benin örnek verdiğim "Win32 API Console OutputCP" değerini '65001' yapmak Perl içindi, C için de bu satırları eklemek gerekiyor. Yani sonuçta program içinden ayar yapmak gerekiyor.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • Windows 7 SP1 işletim sistemi.
    Sayfa kodlaması UTF-8 iken Türkçe harfler yine düzgün görünmedi. Ama sayfa kodlamasını ANSI yaptıktan sonra derleyince düzgün görüntülendi. Notepad'da yazdıp derledim. Düzgün görüntülendi. Çünkü Notepad varsayılan olarak ANSI kullanıyor.

     C Türkçe Karakter Sorunu


    Anladığım kadarıyla Türkçe görmek istiyorsan sayfa kodlamasını UTF-8 değil ANSI yapacaksın.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.