Tema destacado: Recuperar cuenta de Google, GMail, Youtube
Autor
|
Tema: Sobreescribir línea ya escrita lenguaje C (Leído 798 veces)
|
Sagrini
Desconectado
Mensajes: 104
Visit las Vegas ;)
|
Buenas! El otro día estaba haciendo un ahorcado en C y pensé que la salida era muy grande. Se me ocurrió escribir "sobre" lo que ya había escrito antes, lo que llegaría a ser lo que hace "apt-get", etc... cuando hacen una barra de progreso. Mi primera idea fue usar lseek (), pero no me dio resultado. Alguna idea?  Gracias! PS: Os dejo una idea de lo que intentaba hacer: #include <stdio.h> int main () { printf ("1\n"); printf ("2\n"); lseek (stdin, 0, 0); printf ("3\n"); return 0; } $ gcc -o code code.c $./code 3 2 $
|
|
|
|
|
En línea
|
Un saludo. Sagrini
|
|
|
|
El_Java
|
Lo más sencillo es que hagas una limpieza de terminal (como si fueran los fotogramas de un dibujo animado). Cada vez que vayas a mostrar algo haz justo antes esto: #include <cstdlib> #ifdef _WIN32 system("cls"); //para windows #else system("clear"); //para sistemas Linux #endif EDITO: he colocado bien el include, gracias a rir3760Un saludo!
|
|
|
|
« Última modificación: 29 Diciembre 2011, 22:26 por El_Java »
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 382
|
Para tener acceso al prototipo de la función "system" se debe incluir el encabezado <stdlib.h> en el caso de C o <cstdlib> en el caso de C++.
Un saludo
|
|
|
|
|
En línea
|
The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz
|
|
|
satu
Desconectado
Mensajes: 263
Siempre aprendiendo
|
Hola Si estás en Windows puedes utilizar COORD, que está definida en "windows.h" Su uso es tan sencillo como: COORD coordenadas; coordenadas.X = valorX; coordenadas.Y = valorY; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coordenadas); Saludos
|
|
|
|
|
En línea
|
Breakbeat como forma de vida
|
|
|
Sagrini
Desconectado
Mensajes: 104
Visit las Vegas ;)
|
No no... Culpa mía, se me ha olvidado concretar. No puedo usar librerías "para Windows" ni funciones "system ()", así como tampoco librerías como "conio.h", etc. La idea es hacerlo con una función estándar y disponible en todos los sistemas (Windows, Linux, Unix-like...). Alguna idea más? 
|
|
|
|
|
En línea
|
Un saludo. Sagrini
|
|
|
Khronos14
Desconectado
Mensajes: 285
A lie is a lie
|
Los programas como el apt-get suelen usar el parámetro \r, que borra la línea actual. Te enseño un ejemplo: #include <stdio.h> #include <Windows.h> int main(int argc, char * argv[]) { int i = 0; int progreso = 0; for (; i <= 100; i++, progreso++) { printf("\rProgreso: %d", progreso); Sleep(250); } getchar(); return 0; } El Sleep lo pongo para que puedas ver el progreso. Saludos.
|
|
|
|
|
En línea
|
|
|
|
|
Karman
|
Los programas como el apt-get suelen usar el parámetro \r, que borra la línea actual. no borra, mueve el cursor al inicio de la linea... S2
|
|
|
|
|
En línea
|
|
|
|
Sagrini
Desconectado
Mensajes: 104
Visit las Vegas ;)
|
Edito: La última solución me parece la mejor y más correcta. Gracias! 
|
|
|
|
« Última modificación: 30 Diciembre 2011, 13:42 por Sagrini »
|
En línea
|
Un saludo. Sagrini
|
|
|
|
|
|
| Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Curiosidad] URL mal escrita
Sugerencias y dudas sobre el Foro
|
Neobius
|
11
|
1,984
|
9 Agosto 2006, 13:19
por дٳŦ٭
|
|
|
problema en vb.net al llamar dll escrita en vc++
.NET
|
Sin Nick xD
|
2
|
2,272
|
2 Marzo 2008, 21:09
por Sin Nick xD
|
|
|
[AYUDA]Redireccion dependiendo de la url escrita
PHP
|
Ismaw34
|
6
|
1,587
|
27 Octubre 2008, 22:29
por WHK
|
|
|
como ver coincidencias en cuenta de gmail mal escrita ?
Dudas Generales
|
limalimon1
|
3
|
1,779
|
3 Mayo 2011, 20:21
por © Shadoweps ツ
|
|
|
vbscript: sustituir última linea escrita en stdout.
Scripting
|
BlaineMonkey
|
3
|
1,372
|
6 Septiembre 2011, 10:48
por nosoqui
|
|