Ola Jorge,
O problema da erro na hora de compilar pq esta faltando um ; (poonto e virgula)
no fim da struct. :)
E vc vera dois warnings pelo uso da fun��o gets(); :)
Eu coloquei o ponto e virgula e troquei o gets() por scanf() que nao da
os warnings, mas tmb eh uma fun��o insegura. :)
O codigo deve compilar assim:
#include <stdio.h>
#include <stdlib.h>
struct cidades{
int codigo;
char nome[50];
char uf[3];
}cidade;
int main(void){
FILE *arquivo;
int achou, cod_temp;
arquivo=fopen("cidades.dat","r+b");
if (arquivo==NULL)
{
arquivo=fopen("cidades.dat","w+b");
if (arquivo==NULL)
{
fprintf(stderr,"\n\tN�o consegui criar o arquivo das Cidades\n");
exit(1);
}
}
do
{
printf("\nC�digo: ");
scanf("%d",&cod_temp); fflush(stdin);
if (cod_temp==0) break;
rewind(arquivo);
achou=0;
while(fread(&cidade,sizeof(cidade),1,arquivo)==1 && !feof(arquivo))
if (cidade.codigo==cod_temp)
{
printf("C�digo j� cadastrado. Tecle algo . . .");
getchar();
achou=1;
break;
}
if (!achou)
{
cidade.codigo=cod_temp;
printf("Nome..: ");
scanf("%s",&cidade.nome);
printf("Estado..: ");
scanf("%s",&cidade.uf);
fseek(arquivo,0,SEEK_END);
fwrite(&cidade,sizeof(cidade),1,arquivo);
}
} while(1);
fclose(arquivo);
return(0);
}
[root@lnx /root]# gcc -o x w.c
[root@lnx /root]# ./x
C�digo: 743660
Nome..: Zgrp
Estado..: SP
C�digo:
T+
[ ]'s
------------------------------------------
Use o melhor sistema de busca da Internet
Radar UOL - http://www.radaruol.com.br
Assinantes em 22/08/2002: 2243
Mensagens recebidas desde 07/01/1999: 180054
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista:
mailto:[EMAIL PROTECTED]