Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/05/2006, 15:02
MaxExtreme
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
O otra manera para que no juegues con punteros si es que no estás acostumbrado a ellos, es declarar la variable estática:

Código:
char * Solicitar_Fichero()
{
    static char Nombre[20];
    clrscr();
    gotoxy(6,10);
    textcolor(14);
    cprintf("Introduzca nombre del archivo: ");
    scanf("%s", Nombre);
    return Nombre;
}
Por cierto, con declarar "char Nombre[20];" es suficiente, lo de "char * Nombre_Fichero" es redundante. Nombre ya se comporta como un puntero.

Tampoco te recomiendo usar la librería conio.h, no es C estándar, sólo existe en Turbo C.

Por otra parte, los () del return son innecesarios.

Ahora bien, si usas lo que te he escrito arriba, cuidado, porque deberás hacer una copia de la cadena que te devuelvan. Si llamas de nuevo Solicitar_Fichero perderás la anterior. Es decir:

Código:
char * uno = Solicitar_Fichero();
char * dos = Solicitar_Fichero();
Eso resulta que "uno" y "dos" contienen lo mismo, en concreto, lo que escribiste en el scanf() de la segunda llamada.