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.

Detener la emisión de pitidos del ordenador al imprimir el número 7.

Estoy imprimiendo varios caracteres ASCII en la consola como una representación de números binarios, sin embargo, cada vez que imprime el número 7 en la consola, Windows emite un sonido de pitido.
Buscando en línea, puedo ver que algunas personas hablan sobre el ASCII 7 emitiendo un sonido, pero no puedo encontrar dónde desactivarlo en el código.

for (size_t i = 0; i < 1160; i++)
{
    std::cout << "\n" << (char)decimalarray[i];
}

Esto ocurre cuando el valor en la matriz UIN8 es 7 e intento imprimir el valor como un carácter.
imprimir (int)decimalarray[1157] muestra el número 7
imprimir (char)decimalarray[1157] no muestra nada pero emite un sonido de pitido

edición: sería ideal si hubiera una forma de solo escribir caracteres imprimibles. No es fácil codificar los valores manualmente ya que el programa utiliza cada carácter ASCII en su ejecución normal.

¿Alguien puede ayudar? Gracias

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para desactivar el sonido de pitido causado por ASCII 7 al imprimir en la consola, puedes utilizar el siguiente código antes de imprimir los caracteres ASCII:

    #include <windows.h>
    
    // ...
    
    // desactivar pitido de la consola
    SetConsoleBeep(false);
    

    Esto desactivará el pitido de la consola que ocurre cuando se imprime ASCII 7.

    En cuanto al deseo de solo escribir caracteres imprimibles, puedes utilizar la función isprint() para verificar si un carácter es imprimible antes de imprimirlo:

    for (size_t i = 0; i < 1160; i++)
    {
        if (isprint(decimalarray[i]))
        {
            std::cout << "\n" << (char)decimalarray[i];
        }
    }
    

    Esto solo imprimirá caracteres que son considerados imprimibles según el estándar ASCII.</windows.h>

Comments are closed.