Kabs 0 Denunciar post Postado Abril 23, 2013 Bem, meu codigo é uma biblioteca e após fazer o cadastro do usuario tentei implantar um sistema de buscar pelo cpf cadastrado, só que ao compilar o programa da erro justamento no fseek. segue algumas partes do codigo typedef struct { char nome[50]; int telefone; char cpf[11]; int senha; char categoria; }cadastroUsuario; //Aqui é a estrutura do usuario void exibirDadosUsuario() // Aqui é a função que faz a busca do usuario. O usuario digitaria seu cpf e seus dados seriam imprimidos { char cpf[11]; Usuario u; arquivo = fopen("usuario.bin","rb"); if(!arquivo) { printf("Erro ao abrir arquivo\n"); exit(0); } else { printf("\t\t\t Buscar por usuario\n\n"); printf("\nInsira o cpf: "); scanf("%s", &cpf); fseek(arquivo, sizeof(cadastroUsuario)*(cpf-1), SEEK_SET); // Posiciona o registro no inicio //O erro acontece aqui if (ferror(arquivo)){ printf("\nErro na Gravação do Arquivo"); } else{ fread(&u, sizeof(cadastroUsuario), 1, arquivo); // Lê o registro informado if (ferror(arquivo)){ printf("\nErro na leitura do arquivo"); } else{ printf("\nNome do Usuario: %s", u.nome); printf("\nTelefone do Usuario: %s", u.telefone); printf("\nCategoria: &s", u.categoria); printf("Senha do Usuario: %i", u.senha); } } } printf("\n\n"); system("pause"); fclose(arquivo); } Erro mostrado pelo codebloks : |error: invalid operands to binary * (have 'unsigned int' and 'char *')| Compartilhar este post Link para o post Compartilhar em outros sites
GBecker 51 Denunciar post Postado Abril 24, 2013 A forma de obter o tamanho da string cpf está errado. Utilize strlen(cpf) para retornar o tamanho. Da forma que fez, está misturando um tipo int (retornado pela função sizeof) e um tipo char (que é o (cpf-1)). por isso o erro do compilador. Espero ter ajudado, FLW! Compartilhar este post Link para o post Compartilhar em outros sites