[ Foro de C ]
¡Hola!
Voy algo más retrasado que Roberto rrs en el mismo ejercicio de la página 93.
Estoy tratando de crear el fichero, pero cuando lo voy a compilar me aparece el siguiente error:
LÃnea 81 [Warning] passing arg 1 of fputs makes pointer from integer without a cast.
Sé que mis males se arreglarÃan poniendo el teléfono como char, pero quiero saber cómo actuar en caso de números.
El S.O. es XP y el compilador DEV-C++.
He definido telefono en el struct ficha como unsigned int y char textemp[10]. El extraño sÃmbolo ante ficha[i].telefono es el ampersand.
   .............................
             puts("Escribe la poblacion");
             gets(ficha[i].poblacion);
             fputs(ficha[i].poblacion,fichero);   Â
             fputs("\n",fichero); Â
     Â
             puts("Escribe el telefono");
            gets(textemp);
             sscanf(textemp,"%ud",&ficha[i].telefono);
linea 81Â Â fputs(ficha[i].telefono,fichero);
             fputs("\n",fichero);
   ...............................
¿Dónde está el error?
Saludos.        Â
¡Hola!
Me respondo yo mismo, por si a alguien le interesa saber la solución.
Tras muchas vueltas y pruebas, al final lo he conseguido poniendo:
      puts("Escribe la poblacion");
      gets(ficha[i].poblacion);
      fputs(ficha[i].poblacion,fichero);   Â
      fputs("\n",fichero); Â
     Â
      printf("Escribe el telefono\n");
      gets(textemp);
      sscanf(textemp,"%10u",&ficha[i].telefono);
      fprintf(fichero,"%10u",ficha[i].telefono);
      fputs("\n",fichero);
Saludos.
Asà es. Si usas un dato numérico para el teléfono, no puedes guardar con "fputs" sino con "fprintf", porque no es una cadena.
Aun asÃ, un consejo: para los teléfonos se suele preferir usar cadenas en vez de números, porque asà te da el juego de poder usar espacios, paréntesis, ceros a la izquierda, etc.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)