std::string Windows

1. std::string Windows

Matheus Saraiva da Silva
matheusssilva

(usa Fedora)

Enviado em 23/07/2016 - 11:27h

Porque um std::string não funciona com caracteres especial no windows?


  


2. Re: std::string Windows

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 23/07/2016 - 14:10h

Você precisa usar o comando de regionalização para corrigir, para isso, utilize o setlocale


#include <locale.h>
#include <iostream>

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

std::cout << "Mamão maçã melão" << std::endl;

return 0;
}


Com isso, você está adaptando os características do idioma para a localização atual.
Existem dúvidas similares a este aqui no VOL que aprofundam mais a explicação, caso queira pesquisar.

Você pode ver esse código sendo executado em: http://ideone.com/AVJR34




3. Re: std::string Windows

Matheus Saraiva da Silva
matheusssilva

(usa Fedora)

Enviado em 23/07/2016 - 14:43h

uilianries escreveu:

Você precisa usar o comando de regionalização para corrigir, para isso, utilize o setlocale


#include <locale.h>
#include <iostream>

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

std::cout << "Mamão maçã melão" << std::endl;

return 0;
}


Com isso, você está adaptando os características do idioma para a localização atual.
Existem dúvidas similares a este aqui no VOL que aprofundam mais a explicação, caso queira pesquisar.

Você pode ver esse código sendo executado em: http://ideone.com/AVJR34



As novas padronizações C++ 11 e 14 mudaram alguma coisa nesse sentido?


4. Re: std::string Windows

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 23/07/2016 - 15:13h

Não. C++11 e C++14 não alteraram o locale.

A biblioteca do C++ possui locale, que possui mais funcionalidades:


#include <iostream>
#include <locale>

int main()
{
std::locale::global(std::locale(""));
std::cout << "Cão Maçã Café" << std::endl;
std::cout << "Localização atual: " << std::locale("").name() << std::endl;

return 0;
}


Eu acompanho o andamento do C++17 e também não lembro de ter algo novo sobre isso.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts