Leer fichero con datos numericos
Publicado por Pepe (5 intervenciones) el 27/08/2007 20:22:40
Hola, mi duda creo que es sencilla pero que no se por que a mi se me ha complicado tanto.
La cosa es leer de un fichero de texto, valores numericos (float en concreto) , y lugo operar con ellos. Supongamos que cada valor ocupa una linea del fichero. Para operar con numeros lo simplifique aun mas poniendo enteros en el fichero y aún asi nada.
El fichero supongamos que contiene:
5
7
8
----
Y el codigo para leer el fichero es:
int fich1;
int buffer;
int status;
int bytesLeidos;
if((fich1 = open("Origen.txt",O_RDONLY,0666))==-1){
perror("Error al abrir el fichero origen");
}
while((bytesLeidos = read( fich1 , (char *)&buffer , sizeof(int)))>0 ){
printf("%i\n",buffer);
}
Este codigo lo hize para probar los valores que extraia del fichero y como estos no eran lo deseado.
Por que por ejemplo pasandolo por el debugger obtengo valores que no se corresponden a los del fichero,suelen ser numeros muy altos.etc
Si fuera posible me gustaria ver la solucion tb para valores float (5.47 , 7.136 , ....), por que estado muchas horas machacandome con esta 'tonteria'.
La cosa es leer de un fichero de texto, valores numericos (float en concreto) , y lugo operar con ellos. Supongamos que cada valor ocupa una linea del fichero. Para operar con numeros lo simplifique aun mas poniendo enteros en el fichero y aún asi nada.
El fichero supongamos que contiene:
5
7
8
----
Y el codigo para leer el fichero es:
int fich1;
int buffer;
int status;
int bytesLeidos;
if((fich1 = open("Origen.txt",O_RDONLY,0666))==-1){
perror("Error al abrir el fichero origen");
}
while((bytesLeidos = read( fich1 , (char *)&buffer , sizeof(int)))>0 ){
printf("%i\n",buffer);
}
Este codigo lo hize para probar los valores que extraia del fichero y como estos no eran lo deseado.
Por que por ejemplo pasandolo por el debugger obtengo valores que no se corresponden a los del fichero,suelen ser numeros muy altos.etc
Si fuera posible me gustaria ver la solucion tb para valores float (5.47 , 7.136 , ....), por que estado muchas horas machacandome con esta 'tonteria'.
Valora esta pregunta


0