Cuando estamos escribiendo un programa puede que necesitemos representar la
información de una forma especial, con ciertas alineaciones, tabulaciones o
estilos, en C es posible realizar estas tareas mediante las llamadas secuencias
de escape.
Foto tomada de freedigitalphotos.net |
Si recordamos el artículo sobre el código ASCII hay 33 símbolos que no se
visualizan en la pantalla, esto es debido a que son del tipo No Imprimibles y
su papel es el de realizar una acción concreta o insertar un carácter que no es
posible visualizarlo.
Dentro de esos caracteres especiales se encuentran las secuencias de
escape, en C es posible escribir estos caracteres mediante el uso de la barra
invertida “\” seguida de una serie de caracteres. A continuación os detallo las
secuencias que se pueden utilizar en C.
Secuencia
|
Valor |
\n
|
Nueva línea (new line). El cursor pasa a la primera posición de la línea
siguiente
|
\r
|
Retorno de carro (carriage return). El cursor pasa a la primera posición
de la línea donde nos encontremos.
|
\t
|
Tabulador. El cursor pasa a la siguiente posición de tabulación.
|
\a
|
Alerta. Crea un aviso bien de forma visible o bien mediante sonido.
|
\b
|
Espacio atrás (backspace). Hace retroceder el cursor una posición a la
izquierda.
|
\f
|
Alimentación de página (form feed). Crea una nueva página.
|
\\
|
Muestra la barra invertida.
|
\”
|
Muestra la comilla doble.
|
\?
|
Muestra un interrogante.
|
\número_octal
|
Muestra el carácter ASCII correspondiente según el número octal que se
haya especificado.
|
\xnúmero_hexadecimal
|
Muestra el carácter ASCII correspondiente según el número hexadecimal que
se haya especificado.
|
\v
|
Tabulación vertical.
|
\'
|
Apóstrofo o comilla simple.
|
Como he dicho otras veces, el ordenador es una máquina muy tonta peroobediente, nosotros seremos los responsables de decirle qué hacer y cómo
hacerlo. Para ello utilizaremos las secuencias de escape.
Una ventana de consola en Windows tiene 25 líneas y 80 columnas, por lo
tanto es posible mostrar en pantalla de una sola vez hasta 2000 caracteres
juntos (recordemos que el espacio es un carácter), es decir, tenemos espacio de
sobra para mostrar la información como más nos plazca y con el formato que
prefiramos.
Como ejemplo tomaremos el siguiente programa (el clásico Hola Mundo):
#include <stdio.h>
int main(void)
{
printf( "Hola Mundo" );
return 0;
}
Una vez que ejecutemos el programa la salida en consola será la siguiente:
Hola Mundo
|
Ahora utilicemos la secuencia de escape \n de varias formas para ver cómo
se mostrará el mensaje.
printf( "Hola Mundo\n" );
La salida esperada será:
Hola Mundo
|
También se puede utilizar en mitad del texto:
printf( "Hola\nMundo" );
La salida será:
Hola
Mundo
|
Incluso podemos utilizarlo dentro de las mismas palabras:
printf( "Ho\nla\nMun\ndo" );
La salida será:
Ho
la
Mun
do
|
Si utilizamos dos instrucciones printf esto no influirá en la
visualización:
printf( "Hola" );
printf( "Mundo" );
La salida será:
Hola Mundo
|
Varias de las formas de obtener el resultado deseado pueden ser las
siguientes:
printf( "Hola\n" );
printf( "Mundo" );
o
printf( "Hola" );
printf( "\nMundo" );
Para éstos la salida será:
Hola
Mundo
|
Podemos utilizar la secuencia de escape \n de cualquiera de las formas que
deseemos:
printf( "H\n" );
printf( "o\n" );
printf( "l\n" );
printf( "a\n" );
printf( "\n" );
printf( "M\n" );
printf( "u\n" );
printf( "n\n" );
printf( "d\n" );
printf( "o\n" );
o
printf( "H\no\nl\na\n\nM\nu\nn\nd\no\n" );
La salida será:
H
o
l
a
M
u
n
d
o
|
Ahora vamos a insertar más espacios para así poder dar la bienvenida como
si fuera un título de entrada al programa:
printf( " Hola Mundo" );
Como la ventana de consola tiene 80 columnas he introducido 35 líneas en
blanco antes del texto, esto hará que se muestre más o menos centrado en la
ventana de consola.
Utilicemos ahora la secuencia de escape \t para insertar tabulaciones.
printf( "Hola\tMundo" );
La salida sería la siguiente:
Hola Mundo
|
Con el \t podemos realizar las mismas prácticas que con \n pero debemos
tener en cuenta las 80 columnas de la ventana de consola, si superásemos esas
80 columnas el programa comenzaría a escribir en la siguiente línea.
Ahora haremos uso de las comillas dobles dentro de la frase:
printf( "Hola \"Mundo\"" );
La salida sería:
Hola "Mundo"
|
También es posible combinar varias secuencias de escape para dar formato al
texto de salida del programa.
printf( "Hola\n\t\"Mundo\"" );
La salida es:
Hola
"Mundo"
|
Conclusiones
Las secuencias de escape constituyen una utilidad importante para dar un
formato correcto a nuestro programa, es útil para representar información de
una forma gráfica, vistosa y profesional, esencial para mostrar menús o
resultados bien representados.
¿Qué otras secuencias de escape conocéis de otros lenguajes?