alguien que me ayude a corregir este codigo

bercebas
16 de Febrero del 2004
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.

juan carlos
16 de Febrero del 2004
que error le manda

bercebas
16 de Febrero del 2004
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.

Oliverio
16 de Febrero del 2004
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.

bercebas
16 de Febrero del 2004
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);
}