nando_ice Posted May 31, 2006 at 05:09 PM Report #30353 Posted May 31, 2006 at 05:09 PM boas gostava de saber como se faz comparacao entre fixeiros, em k o campo é do tipo inteiro? sei k do tipo char a comparacao é feita do seguite modo strcpy(reg.nome,nome);
TheDark Posted May 31, 2006 at 07:22 PM Report #30382 Posted May 31, 2006 at 07:22 PM Parece-me que há uma grande confusão neste tópico. Falas em comparação entre ficheiros, depois de um campo int, e por fim entre strings com uma função de cópia. Por um lado parece que estás a falar de Pascal, quando associas ficheiros e campos. Mas não percebi bem o que queres. Podes dar uma explicação mais clara? Desaparecido.
nando_ice Posted June 1, 2006 at 01:48 PM Author Report #30574 Posted June 1, 2006 at 01:48 PM eu estou a fazer um trabalho em k estou a utilzar estruturas... e gravao o sei fixeiro em .dat! agora a kestao é a seguito como se faz comparacoes entre numeros inteiros? eu tenho o campo codigo e keria comparar com outro campo, kando o campo é tipo char faz-se da maneira como indiquei na kestao anterior? [strcpy(reg.nome,nome);] espero me ter esclarecido 😞
TheDark Posted June 1, 2006 at 02:37 PM Report #30589 Posted June 1, 2006 at 02:37 PM Já leste a estrutura do ficheiro? reg é a estrutura? o campo codigo é um inteiro? reg.nome e nome sao do tipo char*? Era mais fácil se mostrasses a parte do código na qual estás com dúvidas... strcpy(reg.nome, nome); copia o conteúdo de um array de char chamado nome para outro array de char chamado nome que está dentro da struct reg. Acho que a função que pretendes utilizar é a strcmp(char.nome, nome); que retorna o valor 0 se o conteúdo dos dois arrays for igual. Desaparecido.
nando_ice Posted June 5, 2006 at 03:45 PM Author Report #31303 Posted June 5, 2006 at 03:45 PM ja nao necessito de ajuda ja resolvi o meu problema!!! obrigado na mesma
brink@ero Posted June 7, 2006 at 04:52 PM Report #31638 Posted June 7, 2006 at 04:52 PM ja nao necessito de ajuda ja resolvi o meu problema!!! obrigado na mesma Podias explicar melhor o problema e como resolveste, para que os outros leitores que venham a ter a mesma dúvida ficarem esclarecidos ? Cumpr. bk@ero
nando_ice Posted June 9, 2006 at 12:06 AM Author Report #32005 Posted June 9, 2006 at 12:06 AM o caso era o seguinte eu tinha um funcao editar assim: void editar() { FILE *f; int Codigo; char nome[20],s[255]; char rua[50]; int numporta; char andar[20]; char localidade[20]; int numgarrafas; printf("Caso deseje manter o campo prima ENTER para passar ao seguinte!\n"); printf("Qual o codigo que deseja alterar: "); scanf("%d",&Codigo); if ((f=fopen("dadoscliente.dat","r+"))!=NULL) { fread(®,sizeof(reg),1,f); while (!(feof(f))) { if (Codigo==reg.codigo){ printf("\n\nCodigo\tNome\tRua\tNumero_Porta\tAndar\tLocalidade\n"); printf("\n%d\t%s\t%s\t%d\t\t%s\t%s\n",reg.codigo ,reg.nome ,reg.rua, reg.numporta, reg.andar, reg.localidade); printf("Codigo Cliente: %d\n",reg.codigo); printf("Nome: "); fflush(stdin); gets(nome); if (strcmp(nome,"")) strcpy(reg.nome,nome); printf("Rua: "); fflush(stdin); gets(rua); if (strcmp(rua,"")) strcpy(reg.rua,rua); printf("Numero porta: "); fflush(stdin); numporta=atoi(gets(s)); if (numporta!=0) reg.numporta=numporta; printf("Andar: "); fflush(stdin); gets(andar); if (strcmp(andar,"")) strcpy(reg.andar,andar); printf("Localidade: "); fflush(stdin); gets(localidade); if (strcmp(localidade,"")) strcpy(reg.localidade,localidade); fseek(f,ftell(f)-sizeof(reg),SEEK_SET); fwrite(®,sizeof(reg),1,f); break; } fread(®,sizeof(reg),1,f); } fclose(f); } } e eu keria k ao clicar no entar ele paxexe ao outro campo sem alterar o mesmo, com campos do tipo char era facil, a minha duvida era com campos do tipo inteiro... mas como veem no programa consegui resolver o caso!!! 😉 cumps
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now