ERROR OPENING A FILE IN c
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
- {
- case0:
- printf("tomaste el caso 0\n");
- printf("%d \t %d \t %d\n",pc,ir,ac);
- pc++;
- x++;
- break;
- case1:
- 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;
- case2:
- 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;
- case3:
- 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;
- case4:
- 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;
- case5:
- 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;
- case6:
- 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;
- ///////////////////////////////////////////////////////////////////////////////////////////
- case7:
- // 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 );
- return0;
- //}
- pc++;
- x++;
- break;
- /////////////////////////////////////////////////////////////////////////////////////////////////
- case8:
- printf("tomaste el caso 8\n");
- printf("%d \t %d \t \n",pc,ir);
- //8 Escribe AC en archivos.txt
- pc++;
- x++;
- break;
- }
- }
- return0;