Deberías ir pensando en dividir un poco el código... sepáralo en funciones.
Será más sencillo para ti añadir nueva funcionalidad y corregir los errores que tengas... y evitarás código repetido.
Por ejemplo:
void NuevoUsuario( char* usuario, char* pass )
{
gotoxy(10,10);
cprintf("Introduzca el nombre de usuario:");
cscanf("%s",usuario);
getch();
gotoxy(10,12);
cprintf("Introduzca una clave:");
int m=0;
while(m<=6)
{
pass[m]= getch();
cprintf ("*");
m= m+1;
}
}
Así cada vez que quieres crear un nuevo usuario simplemente llamas a esta función y te ahorras tener que duplicar las líneas una y otra vez.
Esto es extensible al resto del código... otro ejemplo... podrías poner las instrucciones que "decoran" la pantalla en una función.
Es algo que aporta bastante claridad al código.
En cuanto a saber si un usuario ya existe... deberías plantearte tener una lista de usuarios que puedas consultar para saber si un nick introducido ya se encuentra registrado o no.
Aprovechando esa lógica lo suyo sería que almacenases tanto el usuario como la contraseña juntos para tener la información agrupada.
Si no sabes como hacerlo te doy una pista:
struct Usr
{
char[20] Usuario;
char[6] pass;
};
* Consejo final... si la contraseña va a tener forzosamente 6 caracteres deberías plantearte ampliar el array de la contraseña en un caracter... este séptimo caracter lo dejas con un nulo y a partir de ese momento puedes manejar la contraseña como si fuese una cadena de caracteres normal. Esto te permitiría hacer cosas como...
// Imprimir la clave:
cprintf( "%s", pass );
// Comparar la clave con otra introducida:
if ( strcpy( pass, otrapass ) == 0 )
{
...
}