Ir ao conteúdo
  • Cadastre-se

C Erro ao gravar em arquivo de texto


GustavoMarchesim

Posts recomendados

O problema se da no momento de gravar as informações no arquivo de texto dos pacientes que possuem mais de 65 anos e que são portadores de comorbidades.....Não sei como fazer com que ao declarar idade como Int, ele capture o numero normalmente, uma vez que ao declarar, por algum motivo que desconheço ele salve numeros enormes no arquivo de texto (O numero 65 vira -252796812 por exemplo).

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

typedef struct cadastro_paciente{
    char nome[50];
    int idade[5];
    char cpf[50];
    char email[50];
    char telefone[50];
    char endereco[50];
    char estado[50];
    char cidade [50];
    char cep[50];
    char comorbidade[50];
    char quais[50];
}cadastro_paciente;

struct cadastro_paciente paciente;
int risco = 0;

int main(){
    char login[15] = "123";
    char login1[15];
    char senha[15] = "123";
    char senha1[15];        
    int login_efetuado = 0;

    while(!login_efetuado){
        printf("\nDigite o Login: ");
        scanf("%s", login1);
        printf("\nDigite a Senha: ");
        scanf("%s", senha1);

            if (strcmp(login, login1) == 0 && strcmp(senha, senha1) == 0){
            printf("\nLogado com sucesso!!\n");
            login_efetuado = 1;
            sleep(1);
            system("clear");
            printf("\n\t\t\t================================");
            printf("\n\t\t\t        FICHA CADASTRAL         ");
            printf("\n\t\t\t================================");
            printf("\n\n");
            
            printf("\t\nNome do paciente: ");
            setbuf(stdin, NULL);
            fgets(paciente.nome, 50, stdin);

            printf("\t\nIdade do Paciente: ");
            fflush(stdin);
            fgets(paciente.idade, 50, stdin);
        
            printf("\t\nInsira o CPF: ");
            fflush(stdin);
            fgets(paciente.cpf, 50, stdin);

            printf("\t\nInsira um Email válido: ");
            fflush(stdin);
            fgets(paciente.email, 50, stdin);

            printf("\t\nTelefone de contato: ");
            fflush(stdin);
            fgets(paciente.telefone, 50, stdin);

            printf("\t\nInsira o endereço: ");
            fflush(stdin);
            fgets(paciente.endereco, 50, stdin);

            printf("\t\nInsira o Estado [UF]: ");
            fflush(stdin);
            fgets(paciente.estado, 50, stdin);

            printf("\t\nInsira o nome da cidade: ");
            fflush(stdin);
            fgets(paciente.cidade, 50, stdin);

            printf("\t\nInsira o CEP: ");
            fflush(stdin);
            fgets(paciente.cep, 50, stdin);

            printf("\t\nO paciente possui comorbidades ? [1.Sim / 0. Não]: ");
            scanf("%d", &risco);
            setbuf(stdin, NULL);

                if(risco == 1){
                    strcpy(paciente.comorbidade, "SIM");
                    printf("\nQuais?: ");
                    fflush(stdin);
                    fgets(paciente.quais, 50, stdin);

                }else{
                    strcpy(paciente.comorbidade, "NÃO");
                    strcpy(paciente.quais, "Nenhuma");
                }

                FILE *cadastro_paciente;
                cadastro_paciente = (fopen("cadastro.txt", "a"));
                fprintf(cadastro_paciente,
                "\nNome ---------------: %s\n\
                \rIdade --------------: %d\n\
                \rCPF ----------------: %s\n\
                \rTelefone -----------: %s\n\
                \rEmail --------------: %s\n\
                \rCEP ----------------: %s\n\
                \rEstado -------------: %s\n\
                \rCidade -------------: %s\n\
                \rComorbidade---------: %s\n\
                \rQuais---------------: %s\n\
                \r================================\n" , 
                paciente.nome   , paciente.idade, 
                paciente.cpf    , paciente.telefone, 
                paciente.email  , paciente.cep,  
                paciente.estado , paciente.cidade,
                paciente.comorbidade, paciente.quais);
                
                if(paciente.idade >= 65 && risco == 1){
                FILE *ponteiroRisco;
                ponteiroRisco=(fopen("grupoderisco.txt", "a"));
                fprintf(ponteiroRisco,
                "\nNome ---------------: %s\n\
                \rIdade --------------: %d\n\
                \rCPF ----------------: %s\n\
                \rCEP ----------------: %s\n\
                \rComorbidade---------: %s\n\
                \rO Paciente foi identificado como pertencente ao grupo de risco.\n\
                \r================================\n" , 
                paciente.nome   , paciente.idade, 
                paciente.cpf    , paciente.cep  , 
                paciente.quais);
                fclose(ponteiroRisco);
                }
                fclose(cadastro_paciente);
                
            }   else{
                printf("\n\nDADOS INVALIDOS, TENTE NOVAMENTE!\n\n");
                sleep(1);
                system("clear");
        }
    }
}

 

Link para o comentário
Compartilhar em outros sites

27 minutos atrás, GustavoMarchesim disse:

O problema se da no momento de gravar as informações no arquivo de texto dos pacientes que possuem mais de 65 anos e que são portadores de comorbidades.....Não sei como fazer com que ao declarar idade como Int, ele capture o numero normalmente, uma vez que ao declarar, por algum motivo que desconheço ele salve numeros enormes no arquivo de texto (O numero 65 vira -252796812 por exemplo).

 

 

Pois é, um arquivo texto tem texto. Então se quer gravar o número como texto precisa converter...

 

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!