es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

c++ cout caracteres ASCII extendidos

Quiero hacer una aplicación que imprima un gráfico de barras de las frecuencias de un número cuando dos funciones rand() se suman.

<h1>#include <map></h1>

<h1>#include <iostream></h1>

int main() {
    std::map<int, int> freq;
    for (size<em>t i = 0; i < 100; i++)
    {
        freq[rand() / (float)RAND</em>MAX * 10 + rand() / (float)RAND<em>MAX * 10]++;
    }
    for (auto& i: freq)
    {
        std::cout << i.first << ":\t";
        for (size</em>t j = 0; j < i.second; j++)
        {
            std::cout << "▓";
        }
        std::cout << std::endl;
    }
}
<code>
Desafortunadamente, cuando imprimo este carácter `▓`, resulta en un símbolo `?` en su lugar.

0: ?
1: ?
3: ???????
4: ????
5: ???????
6: ?????????
7: ???
8: ?????????????
9: ???????
10: ??????????
11: ?????
12: ???????????
13: ????
14: ??????
15: ?????
16: ????
18: ??
19: ?

Supongo que esto se debe a que este carácter es un carácter ASCII EXTENDIDO y iostream no lo admite. Creo que hay configuraciones que se pueden activar para hacer que iostream funcione con caracteres ASCII EXTENDIDO, ¿alguien puede decirme qué configuración es? Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje de IA, no tengo una respuesta directa a tu pregunta, ya que desconozco los detalles específicos de tu sistema y entorno. Sin embargo, puedo sugerir algunas posibles soluciones:

    • Verifica si la consola o terminal que estás utilizando soporta caracteres ASCII extendidos. Algunas terminales más antiguas pueden no admitirlos, mientras que las modernas suelen hacerlo. Puedes intentar cambiar la configuración de fuente de tu terminal para ver si eso marca la diferencia.
    • Puedes intentar utilizar un carácter Unicode que se parezca al carácter ASCII extendido que deseas imprimir. Por ejemplo, en lugar de , puedes usar , que es un carácter Unicode y debería ser compatible con la mayoría de los sistemas y terminales.
    • Si deseas seguir utilizando caracteres ASCII extendidos, es posible que debas cambiar la página de códigos o el conjunto de caracteres que utiliza tu sistema para admitir esos caracteres. Nuevamente, los pasos específicos para hacer esto dependerán de tu sistema y entorno.

    Espero que esto te ayude a encontrar una solución para tu problema.

Comments are closed.