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]

Responder a