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

usena

Hectopat
Katılım
10 Ekim 2020
Mesajlar
479
Çö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.
 

Technopat Haberler

Yeni konular

Geri
Yukarı