Ir para conteúdo
Fórum Script Brasil

Andreza Galvão

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por Andreza Galvão

  1. Bom dia, pessoal

    Estou com um erro na gravação de conteúdo em arquivo.. Segue o código. Estar dando erro no final da função salvarA, onde no final dessa função eu chamo a função salva para gravar as informações que eu acabei de digitar.

     

    typedef struct Funcionario{
        int cod;
        char nome[50];
        char cpf[15];
        char data_nascimento[11];
        double salario;
    } Funcionario;

    void salva(Funcionario *func, FILE *out){

        if((out = fopen("Funcionarios.dat", "ab"))== NULL){
            printf("Erro ao abrir o arquivo\n");
            exit(1);
        }

        fwrite(&func->cod, sizeof(int),1,out);
        fwrite(func->nome, sizeof(char), sizeof(func->nome), out); //string já é ponteiro, por isso não coloca &.
        fwrite(func->cpf, sizeof(char), sizeof(func->cpf), out);
        fwrite(func->data_nascimento, sizeof(char), sizeof(func->data_nascimento), out);
        fwrite(&func->salario, sizeof(double), 1, out);

        fclose(out);
    }

    Funcionario *le(FILE *in){

        if((in = fopen("Funcionarios.dat", "rb")) == NULL){
            printf("Erro ao abrir o aqrquivo\n");
            exit(1);
        }

        Funcionario *func = (Funcionario *) malloc(sizeof(Funcionario));
        if(0 >= fread(&func->cod, sizeof(int),1,in))//fread() permite a leitura de um bloco de bytes em arquivos{
            {
                free(func); //Liberar e evitar vazamento de memória
                return NULL;
            }
        fread(func->nome, sizeof(char), sizeof(func->nome),in);
        fread(func->cpf, sizeof(char), sizeof(func->cpf),in);
        fread(func->data_nascimento, sizeof(char), sizeof(func->data_nascimento),in);
        fread(&func->salario, sizeof(double), 1, in);

        fclose(in);
        return func;

        }

    void salvarA(FILE *in){
        Funcionario func;

        printf("Codigo: ");
        scanf("%d", func.cod);

        printf("Nome: ");
        scanf("%s", func.nome);

        printf("Cpf: ");
        scanf("%s", func.cpf);

        printf("Data de nascimento: ");
        scanf("%s", func.data_nascimento);

        printf("Salario: ");
        scanf("%lf", func.salario);

        salva(func,in); // O ERRO ESTÁ AQUI. O ERRO INFORMADO É ESSE: error: incompatible type for argument 1 of 'salva'
    }

×
×
  • Criar Novo...