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

error al guardar en matriz desde archivo

Estas en el tema de error al guardar en matriz desde archivo en el foro de C/C++ en Foros del Web. buenas quisieran que me ayudaran en esta parte del codigo porfa archivo=fopen("trabajador.txt","r"); if(archivo==NULL){ printf("******Error contacte al administrador******"); }else{ while(feof(archivo)==0){ fgets(temporal, sizeof temporal,archivo); lapiz=strtok(temporal,","); strncpy(&matriz[i][0],temporal,sizeof temporal); ...
  #1 (permalink)  
Antiguo 04/06/2012, 16:38
 
Fecha de Ingreso: junio-2012
Ubicación: caracas
Mensajes: 33
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta error al guardar en matriz desde archivo

buenas quisieran que me ayudaran en esta parte del codigo porfa

archivo=fopen("trabajador.txt","r");
if(archivo==NULL){
printf("******Error contacte al administrador******");
}else{

while(feof(archivo)==0){
fgets(temporal, sizeof temporal,archivo);

lapiz=strtok(temporal,",");
strncpy(&matriz[i][0],temporal,sizeof temporal);

lapiz=strtok(NULL,",");
strncpy(&matriz[i][1],lapiz,sizeof lapiz);

lapiz=strtok(NULL,",");
strncpy(&matriz[i][2],lapiz,sizeof lapiz);

lapiz=strtok(NULL,",");
strncpy(&matriz[i][3],lapiz,sizeof lapiz);

lapiz=strtok(NULL,",");
strncpy(&matriz[i][4],lapiz,sizeof lapiz);

i++;
}
si mando a imprimir la matriz me da:
viendo matriz: 1jw2estu
viendo matriz: jw2estu
viendo matriz: w2estu
viendo matriz 2estu
viendo matriz estu
// como podran ver almacena el dato de la ultima posicion junto con el primer caracter de las anteriores si me podrian ayudar se los agradeceria muchas gracias de antemano
  #2 (permalink)  
Antiguo 05/06/2012, 01:13
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 2 meses
Puntos: 94
Respuesta: error al guardar en matriz desde archivo

Hola! nose entiende muy bien, detalla un poco mas que es lo que queres hacer, como esta formado tu archivo y usa las etiquetas Highlight para poner codigo

Saludos
  #3 (permalink)  
Antiguo 06/06/2012, 14:08
 
Fecha de Ingreso: junio-2012
Ubicación: caracas
Mensajes: 33
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: error al guardar en matriz desde archivo

Código C:
Ver original
  1. archivo=fopen("trabajador.txt","r");
  2.    if(archivo==NULL){
  3.        printf("******Error contacte al administrador******");
  4.    }else{
  5.      
  6.        while(feof(archivo)==0){    
  7.        fgets(temporal, sizeof temporal,archivo);
  8.            
  9.            lapiz=strtok(temporal,",");
  10.           strncpy(&matriz[i][0],temporal,sizeof temporal);
  11.                  
  12.           lapiz=strtok(NULL,",");
  13.           strncpy(&matriz[i][1],lapiz,sizeof lapiz);
  14.      
  15.           lapiz=strtok(NULL,",");
  16.           strncpy(&matriz[i][2],lapiz,sizeof lapiz);
  17.          
  18.           lapiz=strtok(NULL,",");
  19.           strncpy(&matriz[i][3],lapiz,sizeof lapiz);
  20.          
  21.           lapiz=strtok(NULL,",");
  22.            strncpy(&matriz[i][4],lapiz,sizeof lapiz);
  23.    
  24.      
  25.                  
  26.           i++;
  27.        }
  28.          
  29.      
  30.        if(fclose(archivo)!=0){
  31.            printf("error al cerrar el archivo");
  32.        }
Hola bueno intentare explicarme mejor, ese es parte del codigo, tengo un archivo con 5 datos separados por comas quiero guardarlos en una matriz en el orden como se ve, el problema es que cuando me salgo e imprimo la matriz deberia imprimir de esta manera ejemplo:
viendo matriz: 123
viendo matriz:mendez
viendo matriz: jose
viendo matriz:27/02/1980
viendo matriz:estudiante
pero no ocurre eso el error esta que me imprime de esta manera:
viendo matriz: 1mj2estu
viendo matriz:mj2estu
viendo matriz:j2estu
viendo matriz:2estu
viendo matriz:estu
debo estar cometiendo un error al guardar los datos en la matriz pero ni idea si quieren mas informacion me dicen :) ah "i" inicia en 0 en esta parte no sale jeje
  #4 (permalink)  
Antiguo 06/06/2012, 17:32
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 2 meses
Puntos: 94
Respuesta: error al guardar en matriz desde archivo

Ahora entendi mejor... el problema es q estas pasando mal la matriz a strncpy y ademas en el primer strtok debe ir lapiz y no temporal.
Código C:
Ver original
  1. i=1;
  2.        while(feof(archivo)==0){    
  3.        fgets(temporal, sizeof temporal,archivo); // lee una linea
  4.            
  5.            lapiz=strtok(temporal,","); // primer token
  6.            for (; (i%5)!=0 ; i++) {
  7.           strncpy(matriz[i], lapiz, sizeof temporal); // copio los tokens en la matriz
  8.            lapiz=strtok(NULL,","); // siguientes tokens
  9.            }
  10.            strncpy(matriz[i], lapiz, sizeof temporal); /* esto tiene q ir ya que cuando i es multiplo de 5 sale del while sin copiar el ultimo token */
  11.            i++; // esto es para que entre al for para la siguiente linea
  12.        }
Mas o menos ahi deberia andar, sino subi todo el codigo asi lo puedo compilar

Saludos
  #5 (permalink)  
Antiguo 07/06/2012, 19:37
 
Fecha de Ingreso: junio-2012
Ubicación: caracas
Mensajes: 33
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: error al guardar en matriz desde archivo

listo me funciono a tu manera ahora si podre terminarlo jeje muchas gracias cesar

Etiquetas: matriz
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 03:24.