alguien que me ayude a corregir este codigo
el programa es en C, con el visual studio.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
FILE *ftienda;
struct tiendamodelo
{
int id_tienda;
char direccion[40];
char gerente[40];
};
int introducirdatostiendas(tiendamodelo *tienda);
void listadototaltiendas(tiendamodelo *tienda,int contador);
.
.
int contador;
tiendamodelo *tienda;
clientesmodelo *clientes;
......
int introducirdatostiendas(tiendamodelo *tienda)
{
int tamagno;
int i;
int contador;
ftienda=fopen("tienda.txt","w+");
if (ftienda==NULL)
{
printf("Error al grabar en el fiheron");
}
else
{
fscanf(ftienda,"%d",&tienda->id_tienda);
printf("¿cuantas entradas quieres introducir?");
scanf("%d",&tamagno);
if (fscanf(ftienda,"%d",&contador))
{
contador=contador+tamagno;
}
else
{
contador=tamagno;
}
tienda=(tiendamodelo *)malloc(sizeof(tiendamodelo)*tamagno);
for (i=0;i<tamagno;i++)
{
tienda[i+1].id_tienda=tienda[i+1].id_tienda+1;
printf("ndame la direccion de la tiendan");
scanf("%s",&tienda[i].direccion);
printf("n¿el nombre del gerente es?n");
scanf("%s",&tienda[i].gerente);
fprintf(ftienda,"%d %s %s",&tienda->id_tienda,&tienda->direccion,&tienda->gerente);
}
fprintf(ftienda,"%d ,&contador);
fclose(ftienda);
}
return contador;
}
EL CONTADOR ES PARA LUEGO EN LA FUNCION LISTAR TODOS PODER PONER UN FOR Y SABER HASTA DONDE TIENE QUE RECORRER.
SI ALGUIEN SABE ALGUNA FORMA MEJOR DE HACERLO TB ME VALE.ME DA ERROR ESTA PARTE Y NO SE COMO ARREGLARLO.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
FILE *ftienda;
struct tiendamodelo
{
int id_tienda;
char direccion[40];
char gerente[40];
};
int introducirdatostiendas(tiendamodelo *tienda);
void listadototaltiendas(tiendamodelo *tienda,int contador);
.
.
int contador;
tiendamodelo *tienda;
clientesmodelo *clientes;
......
int introducirdatostiendas(tiendamodelo *tienda)
{
int tamagno;
int i;
int contador;
ftienda=fopen("tienda.txt","w+");
if (ftienda==NULL)
{
printf("Error al grabar en el fiheron");
}
else
{
fscanf(ftienda,"%d",&tienda->id_tienda);
printf("¿cuantas entradas quieres introducir?");
scanf("%d",&tamagno);
if (fscanf(ftienda,"%d",&contador))
{
contador=contador+tamagno;
}
else
{
contador=tamagno;
}
tienda=(tiendamodelo *)malloc(sizeof(tiendamodelo)*tamagno);
for (i=0;i<tamagno;i++)
{
tienda[i+1].id_tienda=tienda[i+1].id_tienda+1;
printf("ndame la direccion de la tiendan");
scanf("%s",&tienda[i].direccion);
printf("n¿el nombre del gerente es?n");
scanf("%s",&tienda[i].gerente);
fprintf(ftienda,"%d %s %s",&tienda->id_tienda,&tienda->direccion,&tienda->gerente);
}
fprintf(ftienda,"%d ,&contador);
fclose(ftienda);
}
return contador;
}
EL CONTADOR ES PARA LUEGO EN LA FUNCION LISTAR TODOS PODER PONER UN FOR Y SABER HASTA DONDE TIENE QUE RECORRER.
SI ALGUIEN SABE ALGUNA FORMA MEJOR DE HACERLO TB ME VALE.ME DA ERROR ESTA PARTE Y NO SE COMO ARREGLARLO.
los errores que me dan son 2:
new line in constant en ->fprintf(ftienda,"%d ,&contador);
y el otro pone que me falta un ) delante de fclose ftienda.
new line in constant en ->fprintf(ftienda,"%d ,&contador);
y el otro pone que me falta un ) delante de fclose ftienda.
No serraste las comillas en el segundo parametro de la funcion fprintf, por eso el error de nueva linea dentro de una constante y por lo tanto tambien el otro.
PROBE CON QUITARLE ESO Y ME DIO 0 ERRORES PERO AL EJECUTARLO SE QUEDA COLGAO EL PC.
ASI QUE ME PUSE MANOS A LA OBRA E HICE OTRO PARECIDO.
PERO EL PROBLEMA QUE TENGO ES QUE AL EJECUTARLO TAMBIEN SE QUEDA PILLAO.
Y ESTE ME DA 0 ERRORES Y 0 WARNINGS...
NO SE, SI ALGUIEN ME PUEDE AYUDAR SE LO AGRADECERIA. X CIERTO MUCHAS GRACIAS A LOS QUE ME AYUDARON CON EL ANTERIOR.
AQUI VA EL PROGRAMA:
#include <stdio.h>
#include <stdlib.h>
FILE *ftienda;
FILE *fcontador;
struct tiendamodelo{
int id_tienda;
char direccion[40];
char gerente[20];
};
void pedir(tiendamodelo *tienda);
int contar(int contador);
void sumarcontador(int contador);
void main(void)
{
int contador=0;
tiendamodelo tienda;
pedir(&tienda);
}
void pedir(tiendamodelo *tienda)
{
int tamagno;
int contador=0;
int i;
printf("cuantas entradas quieres meter?n");
scanf("%d",&tamagno);
tienda=(tiendamodelo *)malloc(sizeof(tiendamodelo)*tamagno);
contador=contar(contador);
tienda->id_tienda=contador+1;
for (i=(tienda->id_tienda);i<((tienda->id_tienda)+tamagno);i++)
{
tienda[i].id_tienda=i;
printf("dame la direccion que pertenece a %d registron",tienda[i].id_tienda);
scanf("%s",&tienda[i].direccion);
printf("dame el nombre del gerente que pertenece a %d registron",tienda[i].gerente);
scanf("s",&tienda[i].gerente);
}
printf("dale al intro para continuarn");
sumarcontador(contador);
printf("dime que registro quieres vern");
scanf("%d",&i);
printf("%d %s %s",tienda[i].id_tienda,tienda[i].direccion,tienda[i].gerente);
}
int contar(int contador)
{
fopen("contadortienda.txt","r");
if (fcontador==NULL)
{
contador=0;
}
else
{
while ((contador=fgetc(fcontador))!=EOF)
break;
}
fclose(fcontador);
return (contador);
}
void sumarcontador(int contador)
{
fopen("contadortienda.txt","w");
if (fcontador==NULL)
{
printf("Error interno del programa");
}
else
{
while ((contador=getchar())!='n')
{
fputc(contador,fcontador);
}
}
fclose(fcontador);
}
ASI QUE ME PUSE MANOS A LA OBRA E HICE OTRO PARECIDO.
PERO EL PROBLEMA QUE TENGO ES QUE AL EJECUTARLO TAMBIEN SE QUEDA PILLAO.
Y ESTE ME DA 0 ERRORES Y 0 WARNINGS...
NO SE, SI ALGUIEN ME PUEDE AYUDAR SE LO AGRADECERIA. X CIERTO MUCHAS GRACIAS A LOS QUE ME AYUDARON CON EL ANTERIOR.
AQUI VA EL PROGRAMA:
#include <stdio.h>
#include <stdlib.h>
FILE *ftienda;
FILE *fcontador;
struct tiendamodelo{
int id_tienda;
char direccion[40];
char gerente[20];
};
void pedir(tiendamodelo *tienda);
int contar(int contador);
void sumarcontador(int contador);
void main(void)
{
int contador=0;
tiendamodelo tienda;
pedir(&tienda);
}
void pedir(tiendamodelo *tienda)
{
int tamagno;
int contador=0;
int i;
printf("cuantas entradas quieres meter?n");
scanf("%d",&tamagno);
tienda=(tiendamodelo *)malloc(sizeof(tiendamodelo)*tamagno);
contador=contar(contador);
tienda->id_tienda=contador+1;
for (i=(tienda->id_tienda);i<((tienda->id_tienda)+tamagno);i++)
{
tienda[i].id_tienda=i;
printf("dame la direccion que pertenece a %d registron",tienda[i].id_tienda);
scanf("%s",&tienda[i].direccion);
printf("dame el nombre del gerente que pertenece a %d registron",tienda[i].gerente);
scanf("s",&tienda[i].gerente);
}
printf("dale al intro para continuarn");
sumarcontador(contador);
printf("dime que registro quieres vern");
scanf("%d",&i);
printf("%d %s %s",tienda[i].id_tienda,tienda[i].direccion,tienda[i].gerente);
}
int contar(int contador)
{
fopen("contadortienda.txt","r");
if (fcontador==NULL)
{
contador=0;
}
else
{
while ((contador=fgetc(fcontador))!=EOF)
break;
}
fclose(fcontador);
return (contador);
}
void sumarcontador(int contador)
{
fopen("contadortienda.txt","w");
if (fcontador==NULL)
{
printf("Error interno del programa");
}
else
{
while ((contador=getchar())!='n')
{
fputc(contador,fcontador);
}
}
fclose(fcontador);
}
