Quiero proporcionar una capacidad de tabulación para flujos de salida de texto en C++. La función debería permitirme decir "anotar esta posición", luego permitir múltiples operaciones de inserción, y finalmente permitirme decir "agregar suficientes caracteres de relleno para terminar con N
caracteres más allá de la posición notada originalmente".¿por qué cout.tellp siempre devuelve -1?
El sistema estándar iostream
no parece mantener una posición de columna, pero pensé que podría falsificarlo usando tellp()
. Mi suposición era que la diferencia entre tellp()
en dos puntos en mi secuencia de salida correspondería a la cantidad de bytes intermedios.
Lamentablemente, al menos en mi entorno Gnu C++, cout
no mantiene la ficción de una posición de secuencia. Cada cout.tellp()
llama al returns -1
. ¿Porqué es eso?
'tellp' nunca es una posición de la columna en cualquier corriente. Solo es significativo en las corrientes buscables. –
@ R.MartinhoFernandes es correcto. 'tellp' se supone que te dice qué valor proporcionar a' seekp' para volver a la posición actual. En este caso, te está diciendo que no hay tal posibilidad. Entabbing tiene que ser apoyado de otra manera. –
Gracias a los dos. Fue la relación de búsqueda que no logré comprender. –