Te puedo hacer una recomendación para optimizar tu método, una forma sencilla es que la computadora no necesita que pongas "key=", eso, por decirlo así, no le interesa, lo optimo es poner por cada usuario un renglón para el nombre, otro para la clave y otro para su numero de "key", así mas o menos:

usuario
clave
15796214 <-esta es la llave (key)
usuario segundo
clave del otro usuario
145375

entonces con esto, haces una clase que tenga las variables de nombre, clave y key, y en el constructor pones:
gets(nombre,50,archivo);
gets(clave,30,archivo);
fscanf(archivo,"%d",key);
entonces trabajas con el objeto en tu programa y en el destructor del objeto sólo pasas todo nuevamente al archivo

En caso de que sea muy complicado o no te resulte puedes usar otro lenguaje como visual c++ que seguramente tendrá más facilidad para las bases de datos