porque no compila este codigo

Iniciado por gwennnnnn26, 6 Mayo 2017, 20:01 PM

0 Miembros y 1 Visitante están viendo este tema.

gwennnnnn26

#include <stdio.h>
#include <string.h>

int cont=-1; //definir en el original
void usuario();
int sleep();

int main()
{
usuario();
return 0;
}

void usuario(void){
struct
{
char nombre[81];
char usuario[81];
char contra_usuario[30];
char tarjeta[30];
}ficha;


int seleccion,r,seleccion1,buscar,comparar;
char usu[81],ubicacion[81],con_usu[81];

system("clear");
do{
printf("Leidos %d datos\n",cont+1);
printf("Pananel de ***\n");
printf("\t                  MENU                     \n");
printf("1.Registrarse\n2.Ingresar\n0.Salir\n");
scanf("%d",&seleccion);

switch(seleccion){

/************************Solicitar datos*********************************/
case 1:
system("clear");
puts("\t        Registrarse...       \n");
printf("Introduce tu  nombre:\n");
gets(ficha[cont+1].nombre);
getchar();
printf("Introduce el usuario:\n");
gets(ficha[cont+1].usuario);
getchar();
printf("Introduce la contraseña:\n");
gets(ficha[cont+1].contra_usuario);
getchar();
printf("Introduce numero de tarjeta:\n");
gets(ficha[cont+1].tarjeta);
getchar();
cont++;
printf("Ahora estas ******* \n");
sleep(1);
system("clear");
break;

/**************************Ingresar*************************/
case 2:
system("clear");
printf("\t          Ingresar...          \n");
printf("Usuario:\n");
gets(usu);
getchar();
buscar=strcmp(ficha.usuario,usu);
if(buscar != 0){
printf("error Ã\n");
}
else{
printf("Ingresa la contraseña:\n");
gets(con_usu);
getchar();
comparar=strcmp(ficha[cont+1].contra_usuario,con_usu);
if(comparar==0){
printf("1.Adeudos\n2.Rentar bici\n");
scanf("%d",&seleccion1);
if(seleccion1==1){
printf("Los adeudos de esta cuenta son...\n");
sleep(1);
}
if(seleccion1==2){
printf("Nuestras terminales son:\n");
printf("Dame el nombre de la terminal que deseas:\n");
gets(ubicacion);
getchar();
printf("La renta es por *****\n");
printf("A partir dla primer hora se ****");
printf("Continuar(1.Si 2.No):\n");
scanf("%d",&r);
if(r==1){
printf("Su*******\n");
}
}
}
}
system("clear");
break;
}//fin switch
}while (seleccion!=0);
}//fin programa


Me salen estos errores pero que esta mal?
programa.c:42:1: warning: implicit declaration of function 'gets' [-Wimplicit-function-declaration]
gets(ficha[cont+1].nombre);
^
programa.c:42:11: error: subscripted value is neither array nor pointer nor vector
gets(ficha[cont+1].nombre);
          ^
programa.c:45:11: error: subscripted value is neither array nor pointer nor vector
gets(ficha[cont+1].usuario);
          ^
programa.c:48:11: error: subscripted value is neither array nor pointer nor vector
gets(ficha[cont+1].contra_usuario);
          ^
programa.c:51:11: error: subscripted value is neither array nor pointer nor vector
gets(ficha[cont+1].tarjeta);
          ^
programa.c:74:22: error: subscripted value is neither array nor pointer nor vector
comparar=strcmp(ficha[cont+1].contra_usuario,con_usu);

MAFUS

Debes estar detrás de C11 así que gets no existe.
Por lo demás ficha no es un array, pero lo tratas como tal.