Clion'da C'de Türkçe karakter hatası

Ahmet Tuğhan

Hectopat
Katılım
17 Şubat 2022
Mesajlar
107
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar sorunu çok araştırdım falat bir türlü bulamadım. C dilinde çalışırken locale.h ile Türkçe kütüphanesini eklememe rağmen karakterler sorun çıkartıyor. File Encoding'i utf-8 yerine Windows-1254 yaptığımda sorun düzeliyor fakat bu sefer de kod Windows dışı hiçbir yerde çalışmaz diye biliyorum. Çözümünü bilen var mı?
 
Son düzenleyen: Moderatör:
Bu işletim sistemiyle ilgili bir durum aslında, her işletim sistemine özgü kod yazman gerekiyor.

Örneğin windows için geniş karakter dizeleriyle çalışırsan bir problem olmaz.
C:
#include <iostream>
#include <string>
#include <fcntl.h>
#include <io.h>

int main()
{

    std::wstring metin;
    _setmode(_fileno(stdout), _O_U16TEXT);
    _setmode(_fileno(stdin), _O_U16TEXT);

    std::wcout << L"türkçe metin!\n";
    std::wcin >> metin;
    std::wcout << metin;
    return 0;
}

C/C++ bir kere yaz her yerde derle mantığında yürüdüğü için kodu hedef platforma göre özelleştirmeli ve ona göre derleme esnasında belirtmelisin Örneğin aşağıdaki pseude kodda genel bir print fonksiyonu var ancak hangi platforma göre derlendiğine göre farklı özel print fonksiyonunu kullanıyor.

C++:
void genel_print_kodu(metin){
   
#ifdef _WIN32
 windows_icin_print_kodu(metin);
#endif

#ifdef linux
 linux_icin_print_kodu(metin);
#endif
}
 

Technopat Haberler

Yeni konular

Geri
Yukarı