elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda con mi codigo, leer de un archivo en c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con mi codigo, leer de un archivo en c  (Leído 1,696 veces)
yeah_2796

Desconectado Desconectado

Mensajes: 6


Ver Perfil
ayuda con mi codigo, leer de un archivo en c
« en: 28 Mayo 2015, 23:17 pm »

hola estoy teniendo problemas econ mi codigo de una tarea. este es el enunciado:

Inicialmente su código debe leer un archivo llamado “reglas.txt”, este contiene en cada
línea alguna letra del abecedario (solo trabajaremos con letras mayúsculas) y al lado
de cada letra estará su respectiva codificación en binario. Serán las letras de la A
hasta la Z y los números de 0 al 4, así tenemos 32 caracteres, 5 bits para cada uno. El
archivo tiene la siguiente estructura:
<Letra> <Binario de 5 bits>Ejemplo reglas.txt:
G 00000
Z 11001
K 00011
.
.
.
.
1 01110
Fíjese que las letras en el archivo no necesariamente están en orden alfabético,
igualmente los números tampoco están en orden. La idea es que las cadenas de
entrada tengan un significado diferente según el archivo de reglas. Todas las letras y
números mencionados anteriormente deben estar incluidos en las reglas con su
respectiva codificación en binario.
Si la entrada fuera 1 00000110010111000000, se tiene que escribir el mensaje
decodificado en un archivo de salida, cada entrada es una línea en la salida. Para el
ejemplo anterior, en el archivo salida se escribe GZ1G. Todo esto con las reglas
definidas antes.

bueno se que se imprime en un archivo salida pero primero imprimo en la terminal para ir probando mi codigo

ahora esta es la parte de opcion 1 la opcion ya la tengo hecha aparte no se preocupen por eso.

la cadena de 50 digitos sera mi bin y como tengo que ir cortando de esa cadena cada 5 digitos creen un for que guardare ese valor que va a ir del 0 al 4 despues cambie los iteradores por que al segundo termino de 5 digitos lo corto de 5 a 9

uso el fscanf para leer del archivo reglas ya que siempre leera un caracter y la cadena, luego uso el strncmp para comparar el arreglo con la cadena del archivo reglas si son iguales devolvera 0 y si es 0 guarda el caracter en el arreglo sol.

ahora el problema qu etengo es que este es mi archivo reglas:

K 00101
J 10111
A 00100
X 10010

y si coloco opcion 1 00101 me imprime k pero tambien me imprime algo de basura y por ejemplo si coloco opcion 1 10111 que seria j , el codigo no hace nada , me pueden ayudar con esto que no se por que el codigo genera estos problemas.

Código
  1. #include <stdlib.h>
  2. #include <stdio.h>  
  3. #include <string.h>
  4.  
  5. int main (int argc, char *argv[]) {
  6. int i=0,j=0,k=0,l=0,m=0,n=0;
  7. char bin[50],str1[5],letra,op,ArrSol[10];
  8.  
  9. int caracter,ret;
  10. int v=0, z=5;
  11. char array[5];
  12. FILE *reglas;
  13.  
  14. scanf("%c %s",&op,bin);
  15.  
  16. if(op=='1'){ //Opción 1
  17. reglas=fopen(argv[1],"r"); //abriendo archivo reglas
  18.  
  19. if(reglas==NULL){
  20. printf("Error en el archivo");
  21. }else{
  22. while (!feof(reglas)){
  23. if((fscanf(reglas,"%c %s",&letra,str1))!=NULL){
  24. //printf("%c %s\n",letra,str1);//Probando que lee línea a línea
  25.  
  26. for (v=0;v<z;v++){
  27. array[v]=bin[v];
  28. l++;
  29. }
  30. v=l;
  31. z=z+5;
  32.  
  33.    ret=strncmp(array,str1,5);
  34. //printf("%d",ret);
  35. if (ret==0){    
  36. ArrSol[k]=letra;
  37. }
  38. k++;
  39. printf ("%s" , ArrSol);
  40. }
  41. }
  42. }  
  43. }
  44. }
  45.  
  46.  
  47. fclose(reglas);
  48.  
  49. return 0;
  50. }
  51.  


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] ¿Cómo leer un archivo midi? « 1 2 »
Programación Visual Basic
Topyr 14 13,311 Último mensaje 20 Octubre 2008, 19:36 pm
por APOKLIPTICO
AYUDA CON BAT, LEER NOMBRE DE ARCHIVO...
Scripting
elecktra 3 3,104 Último mensaje 28 Noviembre 2008, 00:56 am
por Darioxhcx
Ayuda con BAT leer Archivo « 1 2 3 4 »
Scripting
elecktra 30 25,441 Último mensaje 9 Octubre 2009, 05:27 am
por Aranguez
Ayuda - Leer Varios Datos en un Archivo Txt
Programación C/C++
alejandrosevenfold 2 3,211 Último mensaje 20 Septiembre 2012, 22:39 pm
por alejandrosevenfold
Ayuda al leer archivo
Programación C/C++
mnd00003 1 2,106 Último mensaje 13 Octubre 2014, 18:13 pm
por rir3760
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines