Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: gwennnnnn26 en 6 Mayo 2017, 20:01 pm



Título: porque no compila este codigo
Publicado por: gwennnnnn26 en 6 Mayo 2017, 20:01 pm
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int cont=-1; //definir en el original
  5. void usuario();
  6. int sleep();
  7.  
  8. int main()
  9. {
  10. usuario();
  11. return 0;
  12. }
  13.  
  14. void usuario(void){
  15. struct
  16. {
  17. char nombre[81];
  18. char usuario[81];
  19. char contra_usuario[30];
  20. char tarjeta[30];
  21. }ficha;
  22.  
  23.  
  24. int seleccion,r,seleccion1,buscar,comparar;
  25. char usu[81],ubicacion[81],con_usu[81];
  26.  
  27. system("clear");
  28. do{
  29. printf("Leidos %d datos\n",cont+1);
  30. printf("Pananel de ***\n");
  31. printf("\t                  MENU                     \n");
  32. printf("1.Registrarse\n2.Ingresar\n0.Salir\n");
  33. scanf("%d",&seleccion);
  34.  
  35. switch(seleccion){
  36.  
  37. /************************Solicitar datos*********************************/
  38. case 1:
  39. system("clear");
  40. puts("\t        Registrarse...       \n");
  41. printf("Introduce tu  nombre:\n");
  42. gets(ficha[cont+1].nombre);
  43. printf("Introduce el usuario:\n");
  44. gets(ficha[cont+1].usuario);
  45. printf("Introduce la contraseña:\n");
  46. gets(ficha[cont+1].contra_usuario);
  47. printf("Introduce numero de tarjeta:\n");
  48. gets(ficha[cont+1].tarjeta);
  49. cont++;
  50. printf("Ahora estas ******* \n");
  51. sleep(1);
  52. system("clear");
  53. break;
  54.  
  55. /**************************Ingresar*************************/
  56. case 2:
  57. system("clear");
  58. printf("\t          Ingresar...          \n");
  59. printf("Usuario:\n");
  60. gets(usu);
  61. buscar=strcmp(ficha.usuario,usu);
  62. if(buscar != 0){
  63. printf("error Ă\n");
  64. }
  65. else{
  66. printf("Ingresa la contraseña:\n");
  67. gets(con_usu);
  68. comparar=strcmp(ficha[cont+1].contra_usuario,con_usu);
  69. if(comparar==0){
  70. printf("1.Adeudos\n2.Rentar bici\n");
  71. scanf("%d",&seleccion1);
  72. if(seleccion1==1){
  73. printf("Los adeudos de esta cuenta son...\n");
  74. sleep(1);
  75. }
  76. if(seleccion1==2){
  77. printf("Nuestras terminales son:\n");
  78. printf("Dame el nombre de la terminal que deseas:\n");
  79. gets(ubicacion);
  80. printf("La renta es por *****\n");
  81. printf("A partir dla primer hora se ****");
  82. printf("Continuar(1.Si 2.No):\n");
  83. scanf("%d",&r);
  84. if(r==1){
  85. printf("Su*******\n");
  86. }
  87. }
  88. }
  89. }
  90. system("clear");
  91. break;
  92. }//fin switch
  93. }while (seleccion!=0);
  94. }//fin programa
  95.  

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);


Título: Re: porque no compila este codigo
Publicado por: MAFUS en 6 Mayo 2017, 20:37 pm
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.