Ya no busques más en otros sitios porque llegaste al lugar indicado, contamos con la respuesta que necesitas recibir y sin problema.
Solución:
Un carácter de tabulación debe avanzar al siguiente tabulación. Históricamente, las tabulaciones eran cada 8 caracteres, aunque hoy en día son de uso común valores más pequeños y la mayoría de los editores se pueden configurar.
Esperaría que su salida se viera como la siguiente:
123456789
a b
c
El algoritmo es comenzar un conteo de columnas en cero, luego incrementarlo para cada salida de carácter. Cuando llegue a una pestaña, salida n-(c%n)
espacios donde c
es el número de columna (basado en cero) y n
es el espacio entre tabulaciones.
Imagina una regla con tabulaciones cada 8 espacios. Un carácter de tabulación alineará el texto con la siguiente tabulación.
0 8 16 24 32 40
|.......|.......|.......|.......|.......|
printf("tbarn"); t bar
printf("footbarn"); foot bar
printf("longerfootbar"); longerfoot bar
Para calcular dónde está la próxima tabulación, tome la actual column
.
nextTabStop = (column + 8) / 8 * 8
los / 8 * 8
parte efectivamente trunca el resultado al múltiplo más cercano de 8. Por ejemplo, si está en la columna 11, entonces (11 + 8) es 19 y 19 / 8 es 2, y 2 * 8 es 16. Entonces, la siguiente tabulación se detiene de la columna 11 está en la columna 16.
En un editor de texto, puede configurar tabulaciones en intervalos más pequeños, como cada 4 espacios. Si está simulando cómo se ven las pestañas en una terminal, debe ceñirse a 8 espacios por pestaña.
Un carácter de tabulación se desplaza a la siguiente tabulación. Por defecto, hay uno cada 8 espacios. Pero en la mayoría de los shells, puede editarlo fácilmente para que tenga la cantidad de espacios que desee (preferencias de perfil en Linux, establecer tabulación en vim).