[C con Clase] Problema al escribir en un archivo valores int superiores a 9
Akio
mewtwo_tr en hotmail.com
Vie Nov 23 17:03:13 CET 2007
Buenas,
tengo el siguiente problema:
Estoy usando una función para escribir en un fichero un valor int entrado por teclado y la suma de un numero a este.
En el momento de ver el contenido del fichero en el que escribo, los numero del 0 al 9 me salen bien, pero si en una de las sumas, el valor supera a 9, en el fichero me escribe una representación ascii, por ejemplo, si el valor entrado por teclado es 8, y le sumo 2, la función deberia tener como entrada un 10, y escribirme este al fichero, en lugar de eso, en el fichero me escribe el carácter : (dos puntos). Si el valor fuera 11, saldria el ;, el 12 me sale como <, y así sucesivamente (siguiendo en ascii, tales valores corresponden a 58, 59, 60, etc).
La función es:
void escriurefitx(int canal, int i, int j)
{
char hola[5];
if(j==0){ //Modificació per mostrar des de inici de linia.
sprintf(hola,"%1c",i);
lseek(canal, (j), L_SET);
write (canal, hola,1);
}else{
sprintf(hola,"%5c",i);
lseek(canal, (5*j)-4, L_SET);
write (canal, hola,strlen(hola));
}
}
la llamada es:
x=llegir();
escriurefitx(1,x+4,2);
la función llegir() es:
int llegir()
{ int i;
read (0, &i, sizeof(int));
return i;
}
La cual lee un entero de pantalla.
Más información sobre la lista de distribución Cconclase