#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.
#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.