necesito ayuda con este ejercicio lo que me pasa es que cuando lo ejecuto me dice que no lee ningun numero, gracias!!!!!!


07 de Mayo del 2016

Enunciado: Escriba una funcion para leer numeros de un archivo de datos que contenga una serie de
numeros reales a razon de uno o mas por lnea, separados por espacios. El prototipo debe ser
int lee_nro(char archivo[],double *num);
donde archivo contendra el nombre del archivo a leer y en num se devolvera el numero ledo. La funcion
en s devolvera verdadero si se ha podido leer un numero correctamente, y falso en caso contrario. Note
que la funcion debera devolver sucesivamente los distintos numeros del archivo cada vez que es llamada,
de modo que pueda utilizarse por ejemplo como sigue:
double a;
while (lee_nro(argv[1],&a))
printf("%gn",a);
Ayuda: recuerde la sentencia static.

 

 

 

 

 

El codigo que yo hice fue este: 

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


int leer_nro(char archivo[],double *num);
void crear_archivo();
main()
{
double a;

crear_archivo ();

while(leer_nro("datonumeros.dat",&a))
printf("%fn",a);


}

int leer_nro(char archivo[], double*num)
{


FILE *nombre;
int cuantos;
int i=0;


nombre=fopen("datonumeros.dat","rb");
if (nombre==NULL)
{
printf("Error: no se puede abrir el ficheron");

}
num=(double*)malloc(sizeof(double)*cuantos);
if(*num==NULL) exit(1);
fread(num,sizeof(double),cuantos,nombre);
i=fread(num, sizeof(double), cuantos,nombre);
printf("el numero de valores leidos es %dn",i);
if (fclose(nombre)!=0)
{
printf("error al cerrar el ficheron");
exit(1);
}
return i;


}

void crear_archivo()


{

FILE *fp;

struct datos {
int N ;
double nums[6];
};

struct datos misdatos = {
.N = 6,
.nums = {1.1, 2.2, 3.3,}
};

fp = fopen("datonumeros.dat", "wb");
fwrite(&misdatos, sizeof(misdatos), 1, fp);

fclose(fp);
return;
}