elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Usar códigos escape ANSI en C es standard?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Usar códigos escape ANSI en C es standard?  (Leído 3,017 veces)
Lieutenant McFarley

Desconectado Desconectado

Mensajes: 49



Ver Perfil
Usar códigos escape ANSI en C es standard?
« en: 9 Marzo 2022, 12:33 pm »

Por ejemplo esto:
Código
  1. printf ("\033[14;38H");
  2. printf ("\033[J\n");
se considera standard en C? Portable no es porque en Windows no da resultado, en Linux si.


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Usar códigos escape ANSI en C es standard?
« Respuesta #1 en: 9 Marzo 2022, 13:29 pm »

Son códigos del estándar POSIX, no es estándar de C.


En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Usar códigos escape ANSI en C es standard?
« Respuesta #2 en: 9 Marzo 2022, 22:19 pm »

Son códigos del estándar POSIX, no es estándar de C.

Eh, no estoy tan seguro que sea parte de POSIX. De todas formas, los códigos de escape en sí, son una especificación para terminales (son un estándar en sí). Así que realmente depende de la terminal que estes usando.

CMD creo que si soporta esos caracteres de escape pero es una configuración que necesita ser habilitada para versiones anteriores a Windows 10 build 1909.

Una prueba (estoy usando bash con WSL pero debe ser lo mismo):



No tengo un compilador a la mano (para win) pero debería ser lo mismo.

Para ciertas versiones anteriores:

Citar
Enabling ANSI colors in older versions of Windows
To use ANSI colours in the Windows terminal requires setting VirtualTerminalLevel.

VirtualTerminalLevel = 1 is now set by default for the terminal and in ConPTY.
In Windows versions 1511 through to 1903 this had to be enabled in the registry at:

[HKEY_CURRENT_USER\Console]
"VirtualTerminalLevel"=dword:00000001

Fuente: https://ss64.com/nt/syntax-ansi.html

Claro que podrías utilizar otra terminal (que no sea CMD) y que soporte el estandar.

Por si alguien duda con lo de bash investigue un poco más de como hacerlo con echo:

« Última modificación: 9 Marzo 2022, 22:35 pm por MinusFour » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
(Aporte) Usar librerias standard de VB sin registrarlas
Programación Visual Basic
cobein 1 1,540 Último mensaje 28 Abril 2015, 19:31 pm
por zetaperu
Diferencias entre usar caracter o secuencia de escape
Programación C/C++
Caster 5 3,494 Último mensaje 29 Enero 2012, 13:10 pm
por Caster
escape jquery
Desarrollo Web
kakashi20 3 2,624 Último mensaje 27 Febrero 2013, 03:52 am
por it3r
Librería de códigos C# (Compartan aquí sus códigos) « 1 2 3 »
.NET (C#, VB.NET, ASP)
DarK_FirefoX 24 33,862 Último mensaje 12 Diciembre 2018, 02:47 am
por z3nth10n
(Consulta) [C] ¿Usar los corchetes para delimitar caracteres es ANSI?
Programación C/C++
class_OpenGL 7 4,985 Último mensaje 18 Junio 2016, 19:58 pm
por class_OpenGL
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines