RE:PILAS Y ARCHIVOS POR FA..
Las pilas son bastante sencillas de entender con un ejemplo simple:
Imagina que vas a apilar libros sobre una mesa. Primero coges el libro titulado A y lo colocas, sobre este colocas otro libro titulado M. Luego coges el siguiente que va encima titulado O y por ultimo colocas encima del todo el ultimo que se titula R.
Ahora tienes que has colocado los libros sobre la mesa en el orden A-M-O-R.
Ahora piensa que necesitas coger de nuevo esos libros de uno en uno. Evidentemente el que esta encima del todo es el titulado R y deberas coger ese el primero. Debajo esta el O, luego viene el M y debajo de todo el ultimo que es el titulado A.
De forma que esta vez los has recogido en el orden R-O-M-A.
Como ves, cuando apilas, el ultimo en colocarse es el primero en quitarse , o en otras palabras, el primero en entrar es el ultimo en salir.
Asi que para hacer lo que quieres debes crear dos funciones, una Colocar y otra Recoger:
int PosicionDeLaPila=0;
char BufferPila[128]; // puedes alojarlo dinamicamente una vez sabes el tamaño del string
void Colocar(char Dato)
{
BufferPila[PosicionDeLaPila]=Dato;
PosicionDeLaPila++; // Siguiente posicion
}
char Recoger(void)
{
char Dato=NULL; // Si no quedan datos retornar NULL
if(PosicionDeLaPila!=0) // Mirar que no este vacia
{
PosicionDeLaPila--; // Posicion anterior
Dato=BufferPila[PosicionDeLaPila];
}
return Dato;
}
Saludos