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

leer de un archivo en C y almacenarlo en dos arreglos

Estas en el tema de leer de un archivo en C y almacenarlo en dos arreglos en el foro de C/C++ en Foros del Web. Bueno mi tarea consiste en que yo leele de un archivo y que en cada linea tengo que realizar una tarea especifica. la entrda sera ...
  #1 (permalink)  
Antiguo 14/05/2015, 19:09
 
Fecha de Ingreso: febrero-2015
Mensajes: 20
Antigüedad: 9 años, 10 meses
Puntos: 0
leer de un archivo en C y almacenarlo en dos arreglos

Bueno mi tarea consiste en que yo leele de un archivo y que en cada linea tengo que realizar una tarea especifica. la entrda sera en octal y se imprimira en binario excepto el que dice que pase de octal a hexadecimal

Operandos:
• Binario: un array de tipo char de tamaño 64.
• Octal: un array de tipo int de tamaño 21.
• Hexadecimal: un array de tipo char de tamaño 16.

ejemplo: el archivo va a asi:

427 671 +

4 7 &

70~

105 H

salida:

1011010000

100

000111

0x45

Entonces en ciertas operaciones habara dos operandos mas un operador o un operando y un operador, entonces necesito dos arreglos para guardas los dos valores que se operaran, y como los operando y el operador estan separados por espacios hice un while que mientras no se una espacio ' ' el alamecena ese valor en un arreglo pero mi problema esta en que como son dos arreglos no se como podria hacerlo, llevo preguntandole a mis amigos y no me han dado una solucion de como hacer que 427 este en un arreglo y 671 en otro y aparte como los tengo que pasar a binario tambien cree otro arreglo auxiliar, pero supongo que serian dos arreglos auxiliares no he podido hacer nada que necesite dos operando por eso problema que no se como podria llenar los dos arreglos, hice el negar pero no se si esta bien.

Código C:
Ver original
  1. ]#include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5.  
  6. int main (int argc, char** argv) {
  7.     FILE *file1, *file2;
  8.    
  9.     char c;
  10.     char cad [21];
  11.     char cadenita [21];
  12.     int aux [21];
  13.     int x,d,j,i,b;
  14.  
  15.     file1 =fopen ( argv [1], "r");
  16.     file2= fopen ( "salida.txt" , "w" );
  17.    
  18.     if (file1 ==NULL) {
  19.         printf ("\nError al abrir archivo" );
  20.     } else {
  21.         while (feof(file1) == 0) {
  22.             while (c=fgetc(file1)!= ' '){              
  23.                 for (i=0;i<=21;i++) {
  24.                     c=cad[i] ;
  25.                     }
  26.             }
  27.            
  28.             if (c=='+'){
  29.                
  30.             }else if (c=='&'){
  31.                
  32.             }else if (c=='H'){
  33.                
  34.             }else if (c== 'CA1'){
  35.                
  36.             }else if(c== '~'){
  37.                 for (j=0;j<=21;j++){
  38.                     b=cad[j];
  39.                     while ((b/2)!=0){
  40.                         int t = b%2;
  41.                         b=b/2;
  42.                         aux[j]=t;
  43.                     }
  44.                     }
  45.                 for (d==0;d<=21;d++){       //aqui toma del arreglo de binario y coloca los 1 en 0 y visceversa
  46.                     if (aux[d]==1) {
  47.                         aux[d]=0;
  48.                     }else{
  49.                         aux[d]=1;
  50.                     }  
  51.                 }
  52.                 fprintf (file2,"%s", aux);
  53.                
  54.             }
  55.                
  56.         }
  57.     }
  58.         return 0;
  59. }

Etiquetas: almacenar, arreglos, binario, fgets
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 06:04.