Leer cadena dando un valor predeterminado

17/05/2005 - 16:38 por manuel | Informe spam
Hola grupo, el problema es sencillo pero no me sale.

El usuario debe introducir un codigo de proveedor, pero yo debo
proponerle uno que tengo almacenado en una variable.
Como lo hago?
Si lo hago con printf("Proveedor %s", linea3) y luego scanf("%s",L3),
me lo coloca en pantalla pero no puedo borrarlo por si quiero otro
valor.

La aplicacion es en entorno MS-DOS.

Gracias.

Preguntas similare

Leer las respuestas

#1 Isidro Muñoz
17/05/2005 - 17:25 | Informe spam
Hola,

No sé que compilador estás usando, lo que tengas que buscar la funcion que
te cambia el cursor de coordenadas.

mira a ver si es gotoxy, aunque como te indico depende del compilador

Cuando dices MS-DOS ¿ que es que es de MS-DOS de toda la vida, o que estas
haciendo una aplicación de consola en win32 ?

Saludos.
Isidro.



escribió en el mensaje
news:
Hola grupo, el problema es sencillo pero no me sale.

El usuario debe introducir un codigo de proveedor, pero yo debo
proponerle uno que tengo almacenado en una variable.
Como lo hago?
Si lo hago con printf("Proveedor %s", linea3) y luego scanf("%s",L3),
me lo coloca en pantalla pero no puedo borrarlo por si quiero otro
valor.

La aplicacion es en entorno MS-DOS.

Gracias.


Respuesta Responder a este mensaje
#2 manuel
18/05/2005 - 08:59 | Informe spam
MS-DOS de toda la vida, la aplicacion corre en un terminal de mano y
lleva sistema MS-DOS. El compilador que estoy utilizando es Visual C++
1.52

Gracias.
Respuesta Responder a este mensaje
#3 Isidro Muñoz
19/05/2005 - 10:14 | Informe spam
Ese compilador no lo he usado pero seguro que tiene alguna funcion para
cambiar el cursor de posición en pantalla.
En TurboC es gotoxy, mira conio.h.

De todas maneras comentarte que capturar datos por pantalla con la funcion
scanf, es algo cutre. Porque si esperas un numero y el usuario introduce una
cadena, te dará un casque el programa.

Para esos casos lo que te recomiendo que te hagas es una funcion que te
devuelve un dato introducido. Del estilo de un Edit.

Las funciones que debes de usar para hacerlo son:

1.-cambiar la posicion del cursor
2.-getch
3.-Definir colores.

La idea es que la funcion puede ser por ejemplo

bool Edit(int x, int y, char *dato, int size);

x,y son las coordenadas de pantalla donde tiene que pedir el dato.
dato es el buffer donde te tiene que almacenar el dato
size es el tamaño del buffer que en realidad es el ancho del campo a
visualizar por pantalla.

Debes de hacer un bucle del estilo

char tecla,teclaespecial;
char posicion=0;
bool bresult = false;

while(1)
{
gotoxy(x+posicion,y);
teclaespecial=0;
tecla = getch();
if (!tecla) // caracteres especiales cursores, etc.
{
teclaespecial = getch();
}
if (tecla == 13 ) // pulsa intro
{
bresult = true;
break;
}
if ( tecla == 27 ) // pulsa escape
break;
if ( teclaespecial == 72 ) // cursor a la derecha , creo que ese era el
codigo
{
if (posicion+1 < size )
posicion++;
continue;
}
if (teclaespecial == 80) // cursor a la izquierda, creo que es ese codigo
{
if (posicion)
posicion--;
continue;
}
if (isalpha(tecla))
{
dato[posicion] = tecla;
ImprimeCaracter(x+posicion,y,tecla); // pseudocodigo tendras que buscar
la funcion que te lo haga.
if (posicion+1<size)
posicion++;
continue;
}
}
return bresult;


La posicion del cursor tambien se puede cambiar con una interrupcion,
tendria que mirarlo si estas interesado.

Espero que hayas pillado la idea, el codigo evidentemente no esta compilado,
ni probado, es orientativo.

Saludos.
Isidro.

escribió en el mensaje
news:
MS-DOS de toda la vida, la aplicacion corre en un terminal de mano y
lleva sistema MS-DOS. El compilador que estoy utilizando es Visual C++
1.52

Gracias.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida