Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - OwlRoots

#1
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define TAB "\t"

int main() {
   
   FILE *archivo1=NULL; // apuntador archivo fuente
   FILE *archivo2=NULL; // apuntador mnemonicos
   FILE *archivo3=NULL; // apuntador tabla ASCII
   FILE *archivo4=NULL; // apuntador tabla simbolos
   
   int lin=0;
   int con=0;
   int ver=0;
   char comp;
   char eti[10];
   char mne1[6];
   char mne2[6];
   char val[20];
   char oc[2];
   
   printf("Ensamblador de dos pasos \n");
   printf("Desarrollo: Miguel Ayala Diaz \n");
   printf("Matricula: 2132005346 \n");
   
   archivo2 = fopen("Mnemonicos.txt","r");
   
   while(archivo2 == NULL){
      printf("El archivo no pudo abrirse");
      printf("\n\nNombre de archivo: programa.txt");
   }
   
   archivo1 = fopen("programa.txt","r");
   
   while(archivo1 == NULL){
      printf("El archivo no pudo abrirse");
      printf("\nNombre de archivo: programa.txt");
   }
   
   archivo4 = fopen("tabsym.txt","w+");
      

   if(archivo1!=NULL){
      while(!feof(archivo1)){
         
         if(archivo1==TAB){
            printf("Entro1\n");
            eti[0]='\t';
            fscanf(archivo1,"%s\t%s\t%s\n",&eti,&mne1,&val);
            printf("%s\t%s\t%s\n",eti,mne1,val);
         }
         
         else{
            printf("Entro2\n");
            fscanf(archivo1,"%s\t%s\t%s\n",&eti, &mne1, &val);
            printf("%s,%s,%s\n",eti,mne1,val);
            
            if(archivo2!=NULL){
               while(!feof(archivo2) && ver!=0){
                  fscanf(archivo2,"%s\t%s\n",&mne2, &oc);
                  
                  if(strcmp(mne1, mne2)==0){
                     ver=0;
                  }
                  else{
                     ver=1;
                  }
               }
               
               if(ver!=0){
                  printf("Tu mnemonico no existe");
               }
               else
                  printf("Si existe el mnemonico en linea %d\n",lin);
            }
         }
                  
         fprintf (archivo4,"%x\t%s\t%s\t%s\n",con,eti,mne1,val);
         printf ("%x\t%s\t%s\t%s\n",con,eti,mne1,val);
         
         con=con+3;
         lin=lin+1;
      }   
   }
   
   printf("Listo\n");
   fclose(archivo1);
   fclose(archivo2);
   fclose(archivo4);
   system("pause");
}

Buenas tardes, el codigo de arriba corresponde a un ensamblador de dos pasos, mi unica duda es, como puedo saber si uno de mis apuntadores esta apuntando a un tabulador, ya que tengo que darles un trato diferente, gracias, por cierto soy nuevo en el foro disculparan si ya existe un tema como este.