C++ string verilerde Türkçe karakter olmaması

usena

Hectopat
Katılım
10 Ekim 2020
Mesajlar
487
Çözümler
7
Daha fazla  
Cinsiyet
Erkek
Meslek
Google Developer
Arkadaşlar merhaba, C++ yazıyorum ve 260 satırlık kodumun çalışmadığını görüp hatanın string verisine verdiğim ismin içerisinde Türkçe karakter bulunması. Ama zorunlu olarak içermesi gerekiyor. Çözümü var mıdır?

Örneğin;

string ucgen = "Üçgen";
 
Daha önce böyle bir şey kullanmadım. Nasıl yapılacağını gösterir misin?
Kod:
#include <iostream>
#include <locale>
using namespace std;

int main(){
    std::cout<<"Currently systemwide applied locale: "<<std::locale("").name()<<std::endl
             << "Please enter the locale that you want to change this app to: ";
    std::string locale;
    std::cin>>locale;
    try{
        std::locale::global(std::locale(locale.c_str()));
    }
    catch(std::exception& e){
        std::cout<<"Failed to change the locale: "<<e.what()<<std::endl;
    }
    wstring instr;
    wcin >> instr;
    wcout << endl << instr;

    return 0;
}
Bu kodu dene. Benzerini Godbolt'ta denediğimde "en_US.UTF8" girince çalıştı. Ayrıca hem locale değiştirmemin, hem de wstring kullanmamın sebebi ise locale ayarı yaparak işletim sisteminin terminalini hedef karakter setine göre ayarlaman. Tek başına wstring, Unicode olarak çıktı vermez bu sebepten ötürü. Ayrıca wstring'te Emoji'leri de tutabilirsin.

Locale işi, işletim sistemine bağlı olan bir şey olduğu için "runtime error" alman normaldir bu örnekte işin özeti.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı