| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
carlinhosgdl
Registrado: 26 Oct 2008 Mensajes: 3
| Publicado: 12/12/2008 4:25 pm | | | Título: error al leer un archivo lenguaje C |
| Hola el error es el siguiente, resulta que tengo un archivo binario en el cual he guardado una gran cantidad de datos (tipo entero), despues cree una funcion que me los muestra de manera ya ordenada, dicha funcion trabaja perfectamente mostrandome los numeros, pero el problema radica en que cuando lee el numero 10, a partir de ahi me muestra los numeros siguientes "distorcionados", es decir no me los muestra tal cual los tengo en el archivo, por ejemplo, supongamos que tengo almacenados los numeros: 2,5,7,10,11,13,15 pero me muestra: 2,5,7,10,2816,3328,3840. Si se fijan los numeros mostrados a partir del numero 10, estan multiplicados por 256, hecho que no me explico por que suceda
Al principio crei que tendria algun error dentro del codigo pero ya lo he verificado infinidad de veces y no está el error en el codigo, hice otro programa mucho mas sencillo con el unico proposito de comprobar que en verdad era falla del compilador y al parecer es asi, aqui les pongo ese programa:
#include <stdio.h> #include <stdlib.h>
int main(int argc, char *argv[]) { int f,a,j,b,i,m,x,y; f=creat("prueba.sas",744); if(f>=0){ f=open("prueba.sas",2); if(f>=0){ lseek(f,0,0); printf("ingresa un numero"); scanf("%d",&a); write(f,&a,sizeof(int)); printf("ingresa un numero"); scanf("%d",&i); write(f,&i,sizeof(int)); printf("ingresa un numero"); scanf("%d",&x); write(f,&x,sizeof(int)); close(f);}} j=open("prueba.sas",2); lseek(j,0,0); read(j,&b,sizeof(b)); printf("\n\n %d",b); read(j,&m,sizeof(m)); printf(" %d",m); read(j,&y,sizeof(y)); printf(" %d",y); getch(); }
Compilen el programa e ingresen los numeros que deseen (3 en total) al final se los muestra, pero noten lo que sucede si ingresan el 10 al principio. |
| | Volver arriba | |  | marioxcc
Registrado: 17 Oct 2008 Mensajes: 122 Ubicación: México
| Publicado: 12/12/2008 6:15 pm | | | Título: Re: error al leer un archivo lenguaje C |
| | carlinhosgdl escribió: | | Compilen el programa e ingresen los numeros que deseen (3 en total) al final se los muestra, pero noten lo que sucede si ingresan el 10 al principio. |
¡Vaya desastre! , empezando porque las funciones creat, open, getch y lseek no están declaradas, por lo que no se puede compilar. Lo mejor es descartar por completo ese código y que nos digas que es exactamente lo que intentas hacer y te explicamos como se hace. _________________ La computadora no se equivoca, el programador si. |
| | Volver arriba | |  | carlinhosgdl
Registrado: 26 Oct 2008 Mensajes: 3
| Publicado: 14/12/2008 9:02 am | | | Título: Re: error al leer un archivo lenguaje C |
| | marioxcc escribió: | | carlinhosgdl escribió: | | Compilen el programa e ingresen los numeros que deseen (3 en total) al final se los muestra, pero noten lo que sucede si ingresan el 10 al principio. |
¡Vaya desastre! , empezando porque las funciones creat, open, getch y lseek no están declaradas, por lo que no se puede compilar. Lo mejor es descartar por completo ese código y que nos digas que es exactamente lo que intentas hacer y te explicamos como se hace. |
Mmm no sera porque no has incluido las librerias correspondientes que no te compila??? yo lo he compilado, con el codigo tal cual lo puse y no hay ningun problema. Y respondiendo a la segunda parte de tu comentario, lo que intento hacer es leer una serie de numeros enteros que tengo en un archivo pero como comentaba, hay un problema cuando lee un numero 10, (solo sucede cuando lo lee, apartir de eso, me imprime en consola numeros que ni al caso) cabe mencionar que si no lee ningun numero 10 no hay ningun problema con el programa. Yo se que esta raro pero pues eso es lo que sucede. Si alguien sabe el porque le agradeceria que me ayudara con ello ya que supuestamente es cosa del compilador (como nos lo dijo nuestro profesor) por eso es que descarto la posibilidad de que sea error en el codigo. |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |