Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: asdqwezxc en 19 Mayo 2015, 20:35 pm



Título: Escribir una linea arriba
Publicado por: asdqwezxc en 19 Mayo 2015, 20:35 pm
Buenas a todos,

me preguntaba como se podría escribir en el stdout de tal manera que puediera sobreescribir una linea que ya he escrito anteriormente. Por ejemplo:

Código
  1. printf("Hola\n");
  2. prinft("Caracola");
  3.  
  4. // La salida seria:
  5. // Hola
  6. // Caracola
  7.  

Y tras esta sallida me gustaría modificar el "Hola" de la linea de arriba. Sé que haciendo esto se puede modificar una linea:

Código
  1. printf("Holacaracola\radios\n");
  2.  
  3. // La salida seria:
  4. // adiosaracola
  5.  

... pero es la misma linea, no la linea anterior. Todo esto viene por que me pregunto como lo harán comandos como "top" en linux, que no se si lo hacen así o de otra manera.

Un saludo, ¡y gracias!


Título: Re: Escribir una linea arriba
Publicado por: rir3760 en 1 Junio 2015, 17:33 pm
Con solo C estándar no es posible. En el caso de Linux puedes utilizar una biblioteca como ncurses, un tutorial sobre esta es NCURSES Programming HOWTO (http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/) y ejemplos sobre el tema que comentas se encuentran en el capitulo 6: Output functions (http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/printw.html).

Un saludo