Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problema lectura/escritura archivos en c++

Estas en el tema de problema lectura/escritura archivos en c++ en el foro de C/C++ en Foros del Web. buenas. tengo un par de funciones, una de lectura y otra de escritura. por alguna extrańa razon la escritura no va del todo bien. este ...
  #1 (permalink)  
Antiguo 26/08/2010, 11:39
 
Fecha de Ingreso: noviembre-2009
Mensajes: 186
Antigüedad: 14 ańos, 5 meses
Puntos: 2
problema lectura/escritura archivos en c++

buenas. tengo un par de funciones, una de lectura y otra de escritura. por alguna extrańa razon la escritura no va del todo bien. este es el codigo de ambas funciones:
Código C++:
Ver original
  1. #define IMAG_X 50
  2. #define IMAG_Y 27
  3.  
  4.  
  5. int carga_nivel(char mapa[][IMAG_Y]){
  6.     ifstream fichero("nivel.txt");
  7.     char ch;
  8.  
  9.     for(int i=0; i<=IMAG_X; i++){
  10.         for(int j=0; j<=IMAG_Y; j++){
  11.            ch = fichero.get();
  12.            mapa[i][j] = ch;
  13.         }
  14.     }
  15.     return 0;
  16. }
  17.  
  18. int muestra_nivel(const char mapa[][IMAG_Y]){ //no imprime lo deseado, pero se aproxima
  19.     char ch;
  20.     for(int i=0; i<=IMAG_X; i++){
  21.         for(int j=0; j<=IMAG_Y; j++){
  22.  
  23.            printf("%c", mapa[i][j]);
  24.         }
  25.     }
  26.  
  27.     return 0;
  28. }

el fichero nivel.txt es este
Código:
[hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh]
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)
y esta la salida:
Código:
[hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh]
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v.........................................................vv
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
...........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................

v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v..........................................................v
v........................
Muchas gracias
  #2 (permalink)  
Antiguo 26/08/2010, 13:28
 
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 13 ańos, 8 meses
Puntos: 0
Respuesta: problema lectura/escritura archivos en c++

cosa más rara...
  #3 (permalink)  
Antiguo 26/08/2010, 17:39
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 ańos, 2 meses
Puntos: 22
Respuesta: problema lectura/escritura archivos en c++

A simple vista tienes 60 caracteres por línea en el archivo de texto, lo cual no coincide con #define IMAG_X 50, además debes de tomar en cuenta los saltos de línea para que coincidan tus índices.
  #4 (permalink)  
Antiguo 27/08/2010, 04:07
 
Fecha de Ingreso: noviembre-2009
Mensajes: 186
Antigüedad: 14 ańos, 5 meses
Puntos: 2
Respuesta: problema lectura/escritura archivos en c++

y mientras escribo esto me doy de cabezazos contra la pared... muchas gracias, he cambiado el #define a 60 y la copia es exacta, menos por una linea que aparece al final del todo(despues de la copia). es esta:
Código C:
Ver original
  1. ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ //61 caracteres
. el resto del codigo sigue intacto, muchas gracias
  #5 (permalink)  
Antiguo 27/08/2010, 05:14
 
Fecha de Ingreso: noviembre-2009
Mensajes: 186
Antigüedad: 14 ańos, 5 meses
Puntos: 2
Respuesta: problema lectura/escritura archivos en c++

ya esta, cambiado el #define FILAS a 26, y va de miedo. gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:43.