hello everyone, im having a headache with this error im getting, im trying to read a number from a file but inside a Switch(case) statement but im getting alot of erros only inside the case and i cant figure out why if my open file code is correct (as far as i know) i need to read a number from the file and make a + with my (ac) variable
heres my code
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int pc;
int ir;
int cod;
int ac=0;
int i=0;
int dir;
int c=0;
int num_datos;
int dir_datos=0;
int MAX=0;
int x=0;
int valor[1000];
printf("Formato de los datos 0000\n\n");
/* printf("DATOS\n\n");
printf("100\t0005\n")
printf("101\t0002\n\n"); */
printf("\n");
printf("Cuantas instrucciones vas a capturar?\n");
scanf("%d",&dir);//5
printf("\n");
printf("Escriba la direccion de la primer instruccion\n");
scanf("%d",&pc);//100
printf("\n");
// printf("Escriba el valor de la direccion de memoria\n");
// scanf("%d",&ir);//1200
printf("Escriba Cuantos datos van a haber\n");
scanf("%d",&num_datos);//3
printf("\n");
printf("Escriba la direccion de los datos\n");
scanf("%d",&dir_datos);//200
MAX=num_datos+dir_datos;
printf("\n");
for(i=dir_datos; i<MAX; i++)
{
printf("Escriba el valor del dato [%d]\n",dir_datos);
scanf("%d",&c);
valor[i]=c;
dir_datos++;
printf("\n");
}
dir_datos=dir_datos-num_datos;
for(i=dir_datos; i<MAX; i++)
{
printf("%d \t %d\n",i,valor[i]);
}
printf("\n");
// cod=ir/1000;
// dir=ir%1000;
//for(i=0; i<dir; i++)
while(x<dir)
{
printf("Escriba el valor de la direccion de memoria\n");
scanf("%d",&ir);//1200
cod=ir/1000;//este ya esta listo
// Mem=ir%1000;//el % significa el resto de la division
dir_datos=ir%1000;
switch(cod)//esta correctamente evaluado
{
case 0:
printf("tomaste el caso 0\n");
printf("%d \t %d \t %d\n" ,pc,ir,ac);
pc++;
x++;
break;
case 1:
printf("tomaste el caso 1\n");
for(i=dir_datos; i<MAX; i++)
{
if(i==dir_datos)
{
printf("%d \t %d \t %d\n" ,pc,ir,ac);
ac=valor[dir_datos];
}
}
//Mem=ir%1000;
// printf("i=%d\n",i);
// ac=Mem[dir];
pc++;
x++;
break;
case 2:
printf("tomaste el caso 2\n");
for(i=dir_datos; i<MAX; i++)
{
if(i==dir_datos)
{
ac=valor[dir_datos];
printf("%d \t %d \t %d\n" ,pc,ir,ac);
}
}
pc++;
x++;
break;
case 3:
printf("tomaste el caso 3\n");
for(i=dir_datos; i<MAX; i++)
{
if(i==dir_datos)
{
ac=ac+valor[dir_datos];
printf("%d \t %d \t %d\n" ,pc,ir,ac);
}
}
pc++;
x++;
break;
case 4:
printf("tomaste el caso 4\n");
for(i=dir_datos; i<MAX; i++)
{
if(i==dir_datos)
{
ac=ac-valor[dir_datos];
printf("%d \t %d \t %d\n" ,pc,ir,ac);
}
}
pc++;
x++;
break;
case 5:
printf("tomaste el caso 5\n");
for(i=dir_datos; i<MAX; i++)
{
if(i==dir_datos)
{
ac=ac*valor[dir_datos];
printf("%d \t %d \t %d\n" ,pc,ir,ac);
}
}
pc++;
x++;
break;
case 6:
printf("tomaste el caso 6\n");
for(i=dir_datos; i<MAX; i++)
{
if(i==dir_datos)
{
ac=ac/valor[dir_datos];
printf("%d \t %d \t %d\n" ,pc,ir,ac);
}
}
pc++;
x++;
break;
///////////////////////////////////////////////////////////////////////////////////////////
case 7:
// int producto ( int argc, char **argv )
//{int c;
FILE *archivo;
//char buffer[100];
int c;
archivo = fopen ( "archivo.txt", "r" );
while((c = fgetc(archivo)) != EOF) {
ac=ac+c;
}
// fscanf(archivo, "%s" ,buffer);
//buffer=atoi(buffer);
// ac=ac+buffer;
printf("Convirtiendo la cadena %s en un numero: %d\n",buffer);
printf("%d \t %d \t %d\n" ,pc,ir,ac);
fclose ( archivo );
return 0;
//}
pc++;
x++;
break;
/////////////////////////////////////////////////////////////////////////////////////////////////
case 8:
printf("tomaste el caso 8\n");
printf("%d \t %d \t \n" ,pc,ir);
//8 Escribe AC en archivos.txt
pc++;
x++;
break;
}
}
return 0;