Ir ao conteúdo
  • Cadastre-se

Posts recomendados

Postado
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <windows.h>



    char *name;
    char *email;
    char *cpf;
    char *birthDay;
    char *phoneNumber;
    char *street;
    char *streetNumber;
    char *neighborhood;
    char *city;
    char *state;
    char *cep;
    char *diagnosisDay;
    char *comorbidity;



#define MAX_NAME 50;
#define MAX_EMAIL 50;
#define MAX_CPF 11;
#define MAX_DAY 10;
#define MAX_PHONE 15;
#define MAX_STREET 50;
#define MAX_NUMBER 10;
#define MAX_NEIGHBORHOOD 30;
#define MAX_CITY 30;
#define MAX_STATE 2;
#define MAX_CEP 8;
#define MAX_COMORBIDITY 20;



char leitura[50];


char registro[298];


    FILE *fp;



int validate_password() {
    char login[20];
    char senha[20];
    int i, senha_ok;
    char c;

    do {
        system("CLS");
	printf(">>> Sistema de cadastro de pacientes diagnosticados com Covid-19 >>>\n\n\n\n\n");
	fflush(stdin);
	printf("Login: ");
	gets(login);
	printf("\nSenha: ");
	i = 0;
        while((c=getch())!=13){
            senha[i]=c;
            i++;
            printf("*");
        }
        senha[i]='\0';

	senha_ok = strcmp(senha, "geovane");
	if(!senha_ok) return 1;
       } while (senha_ok);
}


int read_option(){
    int opcao, passagem = 0;

    do {
	system("cls");
        printf("Menu Principal\n");
        printf("--------------\n");
        printf("1- Cadastrar Paciente\n");
        printf("2- Consultar Paciente\n");
        printf("3- Pesquisar Paciente (Nome/CPF)\n");
        printf("0- Sair do Programa\n");
        if (passagem)
	    printf("\n *** Opção inválida!\n");
	printf ("Escolha uma das opções:\n");
        printf(">>> ");
        scanf("%d",&opcao);
	setbuf(stdin, NULL);
        printf("\n");
	if (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3) passagem = 1;

       } while (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3);
    return opcao;
}




void preencher_espacos(char *sequencia, int tamanho) {
    int tam, espacos, i;

    strcat(registro, sequencia);
    tam = strlen(sequencia);
    espacos = tamanho - tam;
    for (i=1;i<=espacos;i++) strcat(registro, " ");
}

void tratar_registro() {
    strcpy(registro, "");
    preencher_espacos(name, 50);
    preencher_espacos(email, 50);
    strcat(registro, cpf);
    strcat(registro, birthDay);
    preencher_espacos(phoneNumber, 15);
    preencher_espacos(street, 50);
    preencher_espacos(streetNumber, 10);
    preencher_espacos(neighborhood, 30);
    preencher_espacos(city, 30);
    strcat(registro, state);
    strcat(registro, cep);
    strcat(registro, diagnosisDay);
    preencher_espacos(comorbidity, 20);
    strcat(registro, "\n");
}


int cadastrar() {
    int opcao;
    fp = fopen("arquivo.txt", "a");

    if (fp == NULL) {
	return 0;
    }


    do {
        system("cls");
        printf("<<< Entrada de paciente >>>\n\n\n ");

        fflush(stdin);
        printf ("\nDigite o Nome do Paciente: ");
        gets(leitura);
        name = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!name)
        {
            printf ("** Erro: Memoria Insuficiente **");
            free(name);
            return 0;
        }
        strcpy(name, leitura);

        printf ("\nDigite o Email do Paciente: ");
        gets(leitura);
        email = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!email)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(email);
            return 0;
        }
        strcpy(email, leitura);

        printf ("\nDigite o CPF do Paciente ( Somente Numeros ): ");
        gets(leitura);
        cpf = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!cpf)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(cpf);
            return 0;
        }
        strcpy(cpf, leitura);

        printf ("\nData de nascimento do Paciente?\nNo formato DD/MM/AAAA: ");
        gets(leitura);
        birthDay = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!birthDay)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(birthDay);
            return 0;
        }
        strcpy(birthDay, leitura);

        printf ("\nDigite o telefone do Paciente (Somente Numeros ): ");
        gets(leitura);
        phoneNumber = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!phoneNumber)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(phoneNumber);
            return 0;
        }
        strcpy(phoneNumber, leitura);

        printf ("\nEndereço:\nLogradouro (rua, avenida, alameda ou outro): ");
        gets(leitura);
        street = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!street)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(street);
            return 0;
        }
        strcpy(street, leitura);

        printf ("\nNumero: ");
        gets(leitura);
        streetNumber = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!streetNumber)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(streetNumber);
            return 0;
        }
        strcpy(streetNumber, leitura);

        printf ("\nBairro: ");
        gets(leitura);
        neighborhood = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!neighborhood)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(neighborhood);
            return 0;
        }
        strcpy(neighborhood, leitura);

        printf ("\nCidade: ");
        gets(leitura);
        city = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!city)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(city);
            return 0;
        }
        strcpy(city, leitura);

        printf ("\nEstado: ");
        gets(leitura);
        state = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!state)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(state);
            return 0;
        }
        strcpy(state, leitura);

        printf ("\nCEP: ");
        gets(leitura);
        cep = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!cep)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(cep);
            return 0;
        }
        strcpy(cep, leitura);

        printf ("\nQual Dia do diagnostico?\nNo formato DD/MM/AAAA: ");
        gets(leitura);
        diagnosisDay = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!diagnosisDay)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(diagnosisDay);
            return 0;
        }
        strcpy(diagnosisDay, leitura);

        printf ("\n O paciente tem alguma comorbidade?");
        gets(leitura);
        comorbidity = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!comorbidity)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(comorbidity);
            return 0;
        }
        strcpy(comorbidity, leitura);

        tratar_registro();

        fprintf(fp, "%s", registro);

	printf("\n\n\nCadastrar novo paciente? (1=Sim/0=Não) ");
        scanf("%d",&opcao);
	setbuf(stdin, NULL);
        printf("\n");

       } while (opcao != 0);

    free(name);
    free(email);
    free(cpf);
    free(birthDay);
    free(phoneNumber);
    free(street);
    free(streetNumber);
    free(neighborhood);
    free(city);
    free(state);
    free(cep);
    free(diagnosisDay);
    free(comorbidity);

    fclose(fp);

    printf ("\n\nTamanho do registro: %d caracteres\n\n", strlen(registro));

    system("pause");
    return 1;
 }



void extrair_campo(char *campo[]) {
    int i, j;
    char auxiliar[50];

//    strcpy(name, "");
    for (i=0;i<50;i++) *campo[i] = registro[i];
    for (i=49;i>=0;i--)
	if (*campo[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = *campo[j];
    auxiliar[j] = '\0';
    strcpy(*campo, auxiliar);
}

int extrair_informacoes() {

    name = (char *) calloc(MAX_NAME + 1, sizeof(char));
    if (!name)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(name);
        return 0;
    }
    extrair_campo(name);

    email = (char *) calloc((MAX_EMAIL + 1), sizeof(char));
    if (!email)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(email);
        return 0;
    }
    extrair_campo(email);

    cpf = (char *) calloc((MAX_CPF + 1), sizeof(char));
    if (!cpf)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(cpf);
        return 0;
    }
    extrair_campo(cpf);

    birthDay = (char *) calloc((MAX_DAY + 1), sizeof(char));
    if (!birthDay)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(birthDay);
        return 0;
    }
    extrair_campo(birthDay);

    phoneNumber = (char *) calloc((MAX_PHONE + 1), sizeof(char));
    if (!phoneNumber)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(phoneNumber);
        return 0;
    }
    extrair_campo(phoneNumber);

    street = (char *) calloc((MAX_STREET + 1), sizeof(char));
    if (!street)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(street);
        return 0;
    }
    extrair_campo(street);

    streetNumber = (char *) calloc((MAX_NUMBER + 1), sizeof(char));
    if (!streetNumber)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(streetNumber);
        return 0;
    }
    extrair_campo(streetNumber);

    neighborhood = (char *) calloc((MAX_NEIGHBORHOOD + 1), sizeof(char));
    if (!neighborhood)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(neighborhood);
        return 0;
    }
    extrair_campo(neighborhood);

    city = (char *) calloc((MAX_CITY + 1), sizeof(char));
    if (!city)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(city);
        return 0;
    }
    extrair_campo(city);

    state = (char *) calloc((MAX_STATE + 1), sizeof(char));
    if (!state)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(state);
        return 0;
    }
    extrair_campo(state);

    cep = (char *) calloc((MAX_CEP + 1), sizeof(char));
    if (!cep)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(cep);
        return 0;
    }
    extrair_campo(cep);

    comorbidity = (char *) calloc((MAX_COMORBIDITY + 1), sizeof(char));
    if (!comorbidity)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(comorbidity);
        return 0;
    }
    extrair_campo(comorbidity);



}


int consultar() {

    system("cls");

    fp = fopen("arquivo.txt", "r");

    if (fp == NULL) {
	return 0;
    }

    fgets(registro, 297, fp);

    if (!extrair_informacoes()) return 0;

//    free(name);

    fclose(fp);
    return 1;
}

void pesquisar() {
    system("cls");
    printf("*** Pesquisa sendo construída ***\n\n");
    system("pause");
}


void imprimir() {
    system("cls");
    printf ("*** Consulta de Paciente ***\n\n\n\n\n");
    printf ("Nome do Paciente: %s\n", name);
    printf ("E-mail: %s\n", email);
    printf ("Data de Nascimento: %s\n", birthDay);
    printf ("Telefone: %s\n", phoneNumber);
    printf ("Endereço:\n");
    printf ("%s número: %s bairro: %s\n", street, streetNumber, neighborhood);
    printf ("cidade: %s estado: %s CEP: %s\n", city, state, cep);
    printf ("Data do diagnóstico: %s\n", diagnosisDay);
    printf ("Comorbidade: %s\n", comorbidity);
    printf ("\n\n * Dados do paciente recuperados do arquivo *\n\n");

    system ("pause");
}


int main()
{
    int opcao;
    unsigned int cp=1252;


    unsigned int cpin = GetConsoleCP();
    unsigned int cpout = GetConsoleOutputCP();

    SetConsoleCP(cp);
    SetConsoleOutputCP(cp);

    if(validate_password()) {
	do {
	    opcao = read_option();
	    switch(opcao)
	    {
	        case 0:
		    system("cls");
		    printf ("* Você acabou de sair do sistema *\n\n");


		    SetConsoleCP(cpin);
		    SetConsoleOutputCP(cpout);

		    system("pause");
		    return 0;
	        case 1:
		    if(cadastrar()) imprimir();
		    else
		    {
			printf("\n\nErro na manipulacao do arquivo!\n\n");
			return 1;
		    }
		    break;
	        case 2:
		    if (!consultar())
	                printf ("\n\nHouve um problema com a manipulação do arquivo.\n\n");
		    system ("pause");
		    break;
	        case 3:
		    pesquisar();
		    break;
	    }
	   } while (1);
    }
}

 

  • Amei 1
Postado

@GeovaneAvilla    normalmente o compilador informa que existe um erro de sintaxe no código ,  mas nem sempre ele diz exatamente qual é esse erro ,  aí você precisa interpretar do seu jeito e ver o que pode ser , e ali ele está dizendo que existe um erro antes do char , e o erro é no  define , e seu código está compilado assim  :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <windows.h>
    char *name;
    char *email;
    char *cpf;
    char *birthDay;
    char *phoneNumber;
    char *street;
    char *streetNumber;
    char *neighborhood;
    char *city;
    char *state;
    char *cep;
    char *diagnosisDay;
    char *comorbidity;
#define MAX_NAME 50;
#define MAX_EMAIL 50;
#define MAX_CPF 11;
#define MAX_DAY 10;
#define MAX_PHONE 15;
#define MAX_STREET 50;
#define MAX_NUMBER 10;
#define MAX_NEIGHBORHOOD 30;
#define MAX_CITY 30;
#define MAX_STATE 2;
#define MAX_CEP 8;
#define MAX_COMORBIDITY 20;
char leitura[50];
char registro[298];
    FILE *fp;
int validate_password() {
    char login[20];
    char senha[20];
    int i, senha_ok;
    char c;
    do {
        system("CLS");
	printf(">>> Sistema de cadastro de pacientes diagnosticados com Covid-19 >>>\n\n\n\n\n");
	fflush(stdin);
	printf("Login: ");
	gets(login);
	printf("\nSenha: ");
	i = 0;
        while((c=getch())!=13){
            senha[i]=c;
            i++;
            printf("*");
        }
        senha[i]='\0';

	senha_ok = strcmp(senha, "geovane");
	if(!senha_ok) return 1;
       } while (senha_ok);
}


int read_option(){
    int opcao, passagem = 0;

    do {
	system("cls");
        printf("Menu Principal\n");
        printf("--------------\n");
        printf("1- Cadastrar Paciente\n");
        printf("2- Consultar Paciente\n");
        printf("3- Pesquisar Paciente (Nome/CPF)\n");
        printf("0- Sair do Programa\n");
        if (passagem)
	    printf("\n *** Opção inválida!\n");
	printf ("Escolha uma das opções:\n");
        printf(">>> ");
        scanf("%d",&opcao);
	setbuf(stdin, NULL);
        printf("\n");
	if (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3) passagem = 1;

       } while (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3);
    return opcao;
}




void preencher_espacos(char *sequencia, int tamanho) {
    int tam, espacos, i;

    strcat(registro, sequencia);
    tam = strlen(sequencia);
    espacos = tamanho - tam;
    for (i=1;i<=espacos;i++) strcat(registro, " ");
}

void tratar_registro() {
    strcpy(registro, "");
    preencher_espacos(name, 50);
    preencher_espacos(email, 50);
    strcat(registro, cpf);
    strcat(registro, birthDay);
    preencher_espacos(phoneNumber, 15);
    preencher_espacos(street, 50);
    preencher_espacos(streetNumber, 10);
    preencher_espacos(neighborhood, 30);
    preencher_espacos(city, 30);
    strcat(registro, state);
    strcat(registro, cep);
    strcat(registro, diagnosisDay);
    preencher_espacos(comorbidity, 20);
    strcat(registro, "\n");
}


int cadastrar() {
    int opcao;
    fp = fopen("arquivo.txt", "a");

    if (fp == NULL) {
	return 0;
    }


    do {
        system("cls");
        printf("<<< Entrada de paciente >>>\n\n\n ");

        fflush(stdin);
        printf ("\nDigite o Nome do Paciente: ");
        gets(leitura);
        name = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!name)
        {
            printf ("** Erro: Memoria Insuficiente **");
            free(name);
            return 0;
        }
        strcpy(name, leitura);

        printf ("\nDigite o Email do Paciente: ");
        gets(leitura);
        email = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!email)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(email);
            return 0;
        }
        strcpy(email, leitura);

        printf ("\nDigite o CPF do Paciente ( Somente Numeros ): ");
        gets(leitura);
        cpf = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!cpf)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(cpf);
            return 0;
        }
        strcpy(cpf, leitura);

        printf ("\nData de nascimento do Paciente?\nNo formato DD/MM/AAAA: ");
        gets(leitura);
        birthDay = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!birthDay)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(birthDay);
            return 0;
        }
        strcpy(birthDay, leitura);

        printf ("\nDigite o telefone do Paciente (Somente Numeros ): ");
        gets(leitura);
        phoneNumber = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!phoneNumber)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(phoneNumber);
            return 0;
        }
        strcpy(phoneNumber, leitura);

        printf ("\nEndereço:\nLogradouro (rua, avenida, alameda ou outro): ");
        gets(leitura);
        street = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!street)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(street);
            return 0;
        }
        strcpy(street, leitura);

        printf ("\nNumero: ");
        gets(leitura);
        streetNumber = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!streetNumber)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(streetNumber);
            return 0;
        }
        strcpy(streetNumber, leitura);

        printf ("\nBairro: ");
        gets(leitura);
        neighborhood = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!neighborhood)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(neighborhood);
            return 0;
        }
        strcpy(neighborhood, leitura);

        printf ("\nCidade: ");
        gets(leitura);
        city = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!city)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(city);
            return 0;
        }
        strcpy(city, leitura);

        printf ("\nEstado: ");
        gets(leitura);
        state = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!state)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(state);
            return 0;
        }
        strcpy(state, leitura);

        printf ("\nCEP: ");
        gets(leitura);
        cep = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!cep)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(cep);
            return 0;
        }
        strcpy(cep, leitura);

        printf ("\nQual Dia do diagnostico?\nNo formato DD/MM/AAAA: ");
        gets(leitura);
        diagnosisDay = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!diagnosisDay)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(diagnosisDay);
            return 0;
        }
        strcpy(diagnosisDay, leitura);

        printf ("\n O paciente tem alguma comorbidade?");
        gets(leitura);
        comorbidity = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!comorbidity)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(comorbidity);
            return 0;
        }
        strcpy(comorbidity, leitura);

        tratar_registro();

        fprintf(fp, "%s", registro);

	printf("\n\n\nCadastrar novo paciente? (1=Sim/0=Não) ");
        scanf("%d",&opcao);
	setbuf(stdin, NULL);
        printf("\n");

       } while (opcao != 0);

    free(name);
    free(email);
    free(cpf);
    free(birthDay);
    free(phoneNumber);
    free(street);
    free(streetNumber);
    free(neighborhood);
    free(city);
    free(state);
    free(cep);
    free(diagnosisDay);
    free(comorbidity);

    fclose(fp);

    printf ("\n\nTamanho do registro: %d caracteres\n\n", strlen(registro));

    system("pause");
    return 1;
 }



void extrair_campo(char *campo) {
    int i, j;
    char auxiliar[50];
    campo = (char*)malloc(50*sizeof(char));
//    strcpy(name, "");
    for (i=0;i<50;i++) campo[i] = registro[i];
    for (i=49;i>=0;i--)
	if (campo[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = campo[j];
    auxiliar[j] = '\0';
    strcpy(campo, auxiliar);
}

int extrair_informacoes()
{
    name=(char*)calloc(51,sizeof(char));
//    name = (char*)calloc(MAX_NAME + 1, sizeof(char));
    if ( ! name )
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(name);
        return 0;
    }
    extrair_campo(name);

    email = (char *) calloc((/*MAX_EMAIL + */51), sizeof(char));
    if (!email)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(email);
        return 0;
    }
    extrair_campo(email);

    cpf = (char *) calloc((/*MAX_CPF + */51), sizeof(char));
    if (!cpf)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(cpf);
        return 0;
    }
    extrair_campo(cpf);

    birthDay = (char *) calloc((/*MAX_DAY + */51), sizeof(char));
    if (!birthDay)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(birthDay);
        return 0;
    }
    extrair_campo(birthDay);

    phoneNumber = (char *) calloc((/*MAX_PHONE + */51), sizeof(char));
    if (!phoneNumber)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(phoneNumber);
        return 0;
    }
    extrair_campo(phoneNumber);

    street = (char *) calloc((/*MAX_STREET + */51), sizeof(char));
    if (!street)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(street);
        return 0;
    }
    extrair_campo(street);

    streetNumber = (char *) calloc((/*MAX_NUMBER + */51), sizeof(char));
    if (!streetNumber)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(streetNumber);
        return 0;
    }
    extrair_campo(streetNumber);

    neighborhood = (char *) calloc((/*MAX_NEIGHBORHOOD + */51), sizeof(char));
    if (!neighborhood)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(neighborhood);
        return 0;
    }
    extrair_campo(neighborhood);

    city = (char *) calloc((/*MAX_CITY + */51), sizeof(char));
    if (!city)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(city);
        return 0;
    }
    extrair_campo(city);

    state = (char *) calloc((/*MAX_STATE + */51), sizeof(char));
    if (!state)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(state);
        return 0;
    }
    extrair_campo(state);

    cep = (char *) calloc((/*MAX_CEP + */51), sizeof(char));
    if (!cep)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(cep);
        return 0;
    }
    extrair_campo(cep);

    comorbidity = (char *) calloc((/*MAX_COMORBIDITY + */51), sizeof(char));
    if (!comorbidity)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(comorbidity);
        return 0;
    }
    extrair_campo(comorbidity);



}


int consultar() {

    system("cls");

    fp = fopen("arquivo.txt", "r");

    if (fp == NULL) {
	return 0;
    }

    fgets(registro, 297, fp);

    if (!extrair_informacoes()) return 0;

//    free(name);

    fclose(fp);
    return 1;
}

void pesquisar() {
    system("cls");
    printf("*** Pesquisa sendo construída ***\n\n");
    system("pause");
}


void imprimir() {
    system("cls");
    printf ("*** Consulta de Paciente ***\n\n\n\n\n");
    printf ("Nome do Paciente: %s\n", name);
    printf ("E-mail: %s\n", email);
    printf ("Data de Nascimento: %s\n", birthDay);
    printf ("Telefone: %s\n", phoneNumber);
    printf ("Endereço:\n");
    printf ("%s número: %s bairro: %s\n", street, streetNumber, neighborhood);
    printf ("cidade: %s estado: %s CEP: %s\n", city, state, cep);
    printf ("Data do diagnóstico: %s\n", diagnosisDay);
    printf ("Comorbidade: %s\n", comorbidity);
    printf ("\n\n * Dados do paciente recuperados do arquivo *\n\n");

    system ("pause");
}


int main()
{
    int opcao;
    unsigned int cp=1252;


    unsigned int cpin = GetConsoleCP();
    unsigned int cpout = GetConsoleOutputCP();

    SetConsoleCP(cp);
    SetConsoleOutputCP(cp);

    if(validate_password()) {
	do {
	    opcao = read_option();
	    switch(opcao)
	    {
	        case 0:
		    system("cls");
		    printf ("* Você acabou de sair do sistema *\n\n");


		    SetConsoleCP(cpin);
		    SetConsoleOutputCP(cpout);

		    system("pause");
		    return 0;
	        case 1:
		    if(cadastrar()) imprimir();
		    else
		    {
			printf("\n\nErro na manipulacao do arquivo!\n\n");
			return 1;
		    }
		    break;
	        case 2:
		    if (!consultar())
	                printf ("\n\nHouve um problema com a manipulação do arquivo.\n\n");
		    system ("pause");
		    break;
	        case 3:
		    pesquisar();
		    break;
	    }
	   } while (1);
    }
}

 

Postado

@devair1010 Então amigo, achei o erro no define, agora o que eu preciso e que não to sabendo fazer é colocar o codigo n opção pesquisar, para que quando eu digite o nome do paciente no pesquisar, ele me dê as informações! conseguirir me ajudar?

#include <stdio.h>
#include <stdlib.h>
#include <string.h> //Biblioteca para usar a funçao strcmp
#include <conio.h>
#include <windows.h>

// CONSTANTES: representando o maximo de caracteres
// 	       por variável

#define MAX_NAME 50;
#define MAX_EMAIL 50;
#define MAX_CPF 11;
#define MAX_DAY 10;
#define MAX_PHONE 15;
#define MAX_STREET 50;
#define MAX_NUMBER 10;
#define MAX_NEIGHBORHOOD 30;
#define MAX_CITY 30;
#define MAX_STATE 2;
#define MAX_CEP 8;
#define MAX_COMORBIDITY 20;

/* Endereços de variáveis */

    char *name;
    char *email;
    char *cpf;
    char *birthDay;
    char *phoneNumber;
    char *street;
    char *streetNumber;
    char *neighborhood;
    char *city;
    char *state;
    char *cep;
    char *diagnosisDay;
    char *comorbidity;

// variavel para leitura de dados

char leitura[50];

// variavel de tratamento do registro
char registro[298];

// ponteiro para arquivo
FILE *fp;

// FUNÇÕES

int validate_password() {
    char login[20];
    char senha[20];
    int i, senha_ok;
    char c;

    do {
        system("CLS");
	printf(">>> Sistema de cadastro de pacientes diagnosticados com Covid-19 >>>\n\n\n\n\n");
	fflush(stdin);
	printf("Login: ");
	gets(login);
	printf("\nSenha: ");
	i = 0;
        while((c=getch())!=13){ //13 é o valor de ENTER na tabela ASCII
            senha[i]=c;
            i++;
            printf("*");      //imprime o * Anterisco
        }
        senha[i]='\0';

	senha_ok = strcmp(senha, "geovane");
	if(!senha_ok) return 1;
       } while (senha_ok);
}


int read_option(){ // Ler opções do programa
    int opcao, passagem = 0;

    do {
	system("cls");
        printf("Menu Principal\n");
        printf("--------------\n");
        printf("1- Cadastrar Paciente\n");
        printf("2- Consultar Paciente\n");
        printf("3- Pesquisar Paciente (Nome/CPF)\n");
        printf("0- Sair do Programa\n");
        if (passagem)
	    printf("\n *** Opção inválida!\n");
	printf ("Escolha uma das opções:\n");
        printf(">>> ");
        scanf("%d",&opcao);
	setbuf(stdin, NULL);
        printf("\n");
	if (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3) passagem = 1;

       } while (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3);
    return opcao;
}


/*
void pause(char mensagem[]){
    printf("%s",mensagem);
    getch();
}
*/

void preencher_espacos(char *sequencia, int tamanho) {
    int tam, espacos, i;

    strcat(registro, sequencia);
    tam = strlen(sequencia);
    espacos = tamanho - tam;
    for (i=1;i<=espacos;i++) strcat(registro, " ");
}

void tratar_registro() {
    strcpy(registro, "");
    preencher_espacos(name, 50);
    preencher_espacos(email, 50);
    strcat(registro, cpf);
    strcat(registro, birthDay);
    preencher_espacos(phoneNumber, 15);
    preencher_espacos(street, 50);
    preencher_espacos(streetNumber, 10);
    preencher_espacos(neighborhood, 30);
    preencher_espacos(city, 30);
    strcat(registro, state);
    strcat(registro, cep);
    strcat(registro, diagnosisDay);
    preencher_espacos(comorbidity, 20);
    strcat(registro, "\n");
}


int cadastrar() {
    int opcao;
    fp = fopen("arquivo.txt", "a");

    if (fp == NULL) {
	return 0;
    }
   
    
    do {
        system("cls");
        printf("<<< Entrada de paciente >>>\n\n\n ");

        fflush(stdin);
        printf ("\nDigite o Nome do Paciente: ");
        gets(leitura);
        name = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!name)
        {
            printf ("** Erro: Memoria Insuficiente **");
            free(name);
            return 0;
        }
        strcpy(name, leitura);

        printf ("\nDigite o Email do Paciente: ");
        gets(leitura);
        email = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!email)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(email);
            return 0;
        }
        strcpy(email, leitura);

        printf ("\nDigite o CPF do Paciente ( Somente Numeros ): ");
        gets(leitura);
        cpf = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!cpf)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(cpf);
            return 0;
        }
        strcpy(cpf, leitura);

        printf ("\nData de nascimento do Paciente?\nNo formato DD/MM/AAAA: ");
        gets(leitura);
        birthDay = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!birthDay)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(birthDay);
            return 0;
        }
        strcpy(birthDay, leitura);

        printf ("\nDigite o telefone do Paciente (Somente Numeros ): ");
        gets(leitura);
        phoneNumber = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!phoneNumber)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(phoneNumber);
            return 0;
        }
        strcpy(phoneNumber, leitura);

        printf ("\nEndereço:\nLogradouro (rua, avenida, alameda ou outro): ");
        gets(leitura);
        street = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!street)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(street);
            return 0;
        }
        strcpy(street, leitura);

        printf ("\nNumero: ");
        gets(leitura);
        streetNumber = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!streetNumber)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(streetNumber);
            return 0;
        }
        strcpy(streetNumber, leitura);

        printf ("\nBairro: ");
        gets(leitura);
        neighborhood = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!neighborhood)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(neighborhood);
            return 0;
        }
        strcpy(neighborhood, leitura);

        printf ("\nCidade: ");
        gets(leitura);
        city = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!city)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(city);
            return 0;
        }
        strcpy(city, leitura);

        printf ("\nEstado: ");
        gets(leitura);
        state = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!state)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(state);
            return 0;
        }
        strcpy(state, leitura);

        printf ("\nCEP: ");
        gets(leitura);
        cep = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!cep)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(cep);
            return 0;
        }
        strcpy(cep, leitura);

        printf ("\nQual Dia do diagnostico?\nNo formato DD/MM/AAAA: ");
        gets(leitura);
        diagnosisDay = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!diagnosisDay)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(diagnosisDay);
            return 0;
        }
        strcpy(diagnosisDay, leitura);

        printf ("\n O paciente tem alguma comorbidade?");
        gets(leitura);
        comorbidity = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!comorbidity)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(comorbidity);
            return 0;
        }
        strcpy(comorbidity, leitura);

        tratar_registro();

        fprintf(fp, "%s", registro);
 
	printf("\n\n\nCadastrar novo paciente? (1=Sim/0=Não) ");
        scanf("%d",&opcao);
	setbuf(stdin, NULL);
        printf("\n");

       } while (opcao != 0);

    free(name);
    free(email);
    free(cpf);
    free(birthDay);
    free(phoneNumber);
    free(street);
    free(streetNumber);
    free(neighborhood);
    free(city);
    free(state);
    free(cep);
    free(diagnosisDay);
    free(comorbidity);

    fclose(fp);

    printf ("\n\nTamanho do registro: %d caracteres\n\n", strlen(registro));

    system("pause");
    return 1;
 }

/*
int comorbidity_option() { // ler tipos de comorbidades
    printf("Qual o tipo de comorbidade?\nEscolha entre as opções:\n");
    printf("1- Diabetes");
    printf("2- Obesidade\n");
    printf("3- Hipertensão\n");
    printf("4- Tuberculose\n");
    printf("Opção: ");
    scanf("%d",&x);
    printf("\n");
    return x;

}
*/

int extrair_informacoes() {
    int base = 0, topo, suporte;
    int i, j;
    char auxiliar[50];

    name = (char *) calloc(51, sizeof(char));
    if (!name)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(name);
        return 0;
    }
    

    for (i=0;i<=49;i++) name[i] = registro[i];
    for (i=49;i>=0;i--)
	if (name[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = name[j];
    auxiliar[j] = '\0';
    strcpy(name, auxiliar);


    email = (char *) calloc(51, sizeof(char));
    if (!email)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(email);
        return 0;
    }

    for (i=50;i<=99;i++) email[i - 50] = registro[i];
    for (i=49;i>=0;i--)
	if (email[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = email[j];
    auxiliar[j] = '\0';
    strcpy(email, auxiliar);

    cpf = (char *) calloc(12, sizeof(char));
    if (!cpf)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(cpf);
        return 0;
    }

    for (i=100;i<=110;i++) cpf[i - 100] = registro[i];

    birthDay = (char *) calloc(11, sizeof(char));
    if (!birthDay)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(birthDay);
        return 0;
    }

    for (i=111;i<=120;i++) birthDay[i - 111] = registro[i];

    phoneNumber = (char *) calloc(51, sizeof(char));
    if (!phoneNumber)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(phoneNumber);
        return 0;
    }

    for (i=121;i<=135;i++) phoneNumber[i - 121] = registro[i];
    for (i=14;i>=0;i--)
	if (phoneNumber[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = phoneNumber[j];
    auxiliar[j] = '\0';
    strcpy(phoneNumber, auxiliar);

    street = (char *) calloc(51, sizeof(char));
    if (!street)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(street);
        return 0;
    }

    for (i=136;i<=185;i++) street[i - 136] = registro[i];
    for (i=49;i>=0;i--)
	if (street[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = street[j];
    auxiliar[j] = '\0';
    strcpy(street, auxiliar);

    streetNumber = (char *) calloc(11, sizeof(char));
    if (!streetNumber)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(streetNumber);
        return 0;
    }

    for (i=186;i<=195;i++) streetNumber[i - 186] = registro[i];
    for (i=9;i>=0;i--)
	if (streetNumber[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = streetNumber[j];
    auxiliar[j] = '\0';
    strcpy(streetNumber, auxiliar);

    neighborhood = (char *) calloc(31, sizeof(char));
    if (!neighborhood)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(neighborhood);
        return 0;
    }

    for (i=196;i<=225;i++) neighborhood[i - 196] = registro[i];
    for (i=29;i>=0;i--)
	if (neighborhood[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = neighborhood[j];
    auxiliar[j] = '\0';
    strcpy(neighborhood, auxiliar);

    city = (char *) calloc(31, sizeof(char));
    if (!city)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(city);
        return 0;
    }

    for (i=226;i<=255;i++) city[i - 226] = registro[i];
    for (i=29;i>=0;i--)
	if (city[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = city[j];
    auxiliar[j] = '\0';
    strcpy(city, auxiliar);

    state = (char *) calloc(3, sizeof(char));
    if (!state)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(state);
        return 0;
    }

    for (i=256;i<=257;i++) state[i - 256] = registro[i];

    cep = (char *) calloc(9, sizeof(char));
    if (!cep)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(cep);
        return 0;
    }

    for (i=258;i<=265;i++) cep[i - 258] = registro[i];

    diagnosisDay = (char *) calloc(11, sizeof(char));
    if (!diagnosisDay)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(diagnosisDay);
        return 0;
    }

    for (i=266;i<=275;i++) diagnosisDay[i - 266] = registro[i];

    comorbidity = (char *) calloc(21, sizeof(char));
    if (!comorbidity)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(comorbidity);
        return 0;
    }

    for (i=276;i<=295;i++) comorbidity[i - 276] = registro[i];
    for (i=19;i>=0;i--)
	if (comorbidity[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = comorbidity[j];
    auxiliar[j] = '\0';
    strcpy(comorbidity, auxiliar);
}


int consultar() {

    system("cls");

    fp = fopen("arquivo.txt", "r");

    if (fp == NULL) {
	return 0;
    }
  
    fgets(registro, 297, fp);

    extrair_informacoes();
    fclose(fp);
    return 1;
}

void pesquisar() {
    system("cls");
    printf("*** Pesquisa sendo construída ***\n\n");
    system("pause");
}


void imprimir() {
    system("cls");
    printf ("*** Consulta de Paciente ***\n\n\n\n\n");
    printf ("Nome do Paciente: %s<<<\n", name);
    printf ("E-mail: %s<<<\n", email);
    printf ("CPF: %s<<<\n", cpf);
    printf ("Data de Nascimento: %s\n", birthDay);
    printf ("Telefone: %s\n", phoneNumber);
    printf ("Endereço:\n");
    printf ("%s número: %s bairro: %s\n", street, streetNumber, neighborhood);
    printf ("cidade: %s estado: %s CEP: %s\n", city, state, cep);
    printf ("Data do diagnóstico: %s\n", diagnosisDay);
    printf ("Comorbidade: %s\n", comorbidity);
    printf ("\n\n * Dados do paciente recuperados do arquivo *\n\n");

    system ("pause");
}

// FIM FUNÇÕES

int main()
{
    int opcao;
    unsigned int cp=1252;

    //Respaldo do codepage original da consola
    unsigned int cpin = GetConsoleCP(); 
    unsigned int cpout = GetConsoleOutputCP(); 

    SetConsoleCP(cp); //Estabelecendo o codepage de entrada 1252(latin2)
    SetConsoleOutputCP(cp); //Estabelecendo o copage de saída 1252(latin2)

    if(validate_password()) {
	do {
	    opcao = read_option();
	    switch(opcao)
	    {
	        case 0:
		    system("cls");
		    printf ("* Você acabou de sair do sistema *\n\n");
		
	            // É importante voltar o cmd ao estado original, ou pode falhar outros programas.
    		    // Sempre será possível mudar o codepage usando SetConsoleCP e SetConsoleOutputCP.
		    SetConsoleCP(cpin);
		    SetConsoleOutputCP(cpout);

		    system("pause");
		    return 0;
	        case 1:
		    if(cadastrar()) imprimir();
		    else
		    {
			printf("\n\nErro na manipulacao do arquivo!\n\n");
			return 1;
		    }
		    break;
	        case 2:
		    if (consultar()) imprimir();
	            else printf ("\n\nHouve um problema com a manipulação do arquivo.\n\n");
		    system ("pause");
		    break;
	        case 3:
		    pesquisar();
		    break;
	    }
	   } while (1);
    }
}
Em 01/11/2020 às 20:27, Ricardov disse:

Olá. Use o botão <> do editor para postar o código. Fica melhor.

 

32 minutos atrás, GeovaneAvilla disse:

@devair1010 Então amigo, achei o erro no define, agora o que eu preciso e que não to sabendo fazer é colocar o codigo n opção pesquisar, para que quando eu digite o nome do paciente no pesquisar, ele me dê as informações! conseguirir me ajudar?


#include <stdio.h>
#include <stdlib.h>
#include <string.h> //Biblioteca para usar a funçao strcmp
#include <conio.h>
#include <windows.h>

// CONSTANTES: representando o maximo de caracteres
// 	       por variável

#define MAX_NAME 50;
#define MAX_EMAIL 50;
#define MAX_CPF 11;
#define MAX_DAY 10;
#define MAX_PHONE 15;
#define MAX_STREET 50;
#define MAX_NUMBER 10;
#define MAX_NEIGHBORHOOD 30;
#define MAX_CITY 30;
#define MAX_STATE 2;
#define MAX_CEP 8;
#define MAX_COMORBIDITY 20;

/* Endereços de variáveis */

    char *name;
    char *email;
    char *cpf;
    char *birthDay;
    char *phoneNumber;
    char *street;
    char *streetNumber;
    char *neighborhood;
    char *city;
    char *state;
    char *cep;
    char *diagnosisDay;
    char *comorbidity;

// variavel para leitura de dados

char leitura[50];

// variavel de tratamento do registro
char registro[298];

// ponteiro para arquivo
FILE *fp;

// FUNÇÕES

int validate_password() {
    char login[20];
    char senha[20];
    int i, senha_ok;
    char c;

    do {
        system("CLS");
	printf(">>> Sistema de cadastro de pacientes diagnosticados com Covid-19 >>>\n\n\n\n\n");
	fflush(stdin);
	printf("Login: ");
	gets(login);
	printf("\nSenha: ");
	i = 0;
        while((c=getch())!=13){ //13 é o valor de ENTER na tabela ASCII
            senha[i]=c;
            i++;
            printf("*");      //imprime o * Anterisco
        }
        senha[i]='\0';

	senha_ok = strcmp(senha, "geovane");
	if(!senha_ok) return 1;
       } while (senha_ok);
}


int read_option(){ // Ler opções do programa
    int opcao, passagem = 0;

    do {
	system("cls");
        printf("Menu Principal\n");
        printf("--------------\n");
        printf("1- Cadastrar Paciente\n");
        printf("2- Consultar Paciente\n");
        printf("3- Pesquisar Paciente (Nome/CPF)\n");
        printf("0- Sair do Programa\n");
        if (passagem)
	    printf("\n *** Opção inválida!\n");
	printf ("Escolha uma das opções:\n");
        printf(">>> ");
        scanf("%d",&opcao);
	setbuf(stdin, NULL);
        printf("\n");
	if (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3) passagem = 1;

       } while (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3);
    return opcao;
}


/*
void pause(char mensagem[]){
    printf("%s",mensagem);
    getch();
}
*/

void preencher_espacos(char *sequencia, int tamanho) {
    int tam, espacos, i;

    strcat(registro, sequencia);
    tam = strlen(sequencia);
    espacos = tamanho - tam;
    for (i=1;i<=espacos;i++) strcat(registro, " ");
}

void tratar_registro() {
    strcpy(registro, "");
    preencher_espacos(name, 50);
    preencher_espacos(email, 50);
    strcat(registro, cpf);
    strcat(registro, birthDay);
    preencher_espacos(phoneNumber, 15);
    preencher_espacos(street, 50);
    preencher_espacos(streetNumber, 10);
    preencher_espacos(neighborhood, 30);
    preencher_espacos(city, 30);
    strcat(registro, state);
    strcat(registro, cep);
    strcat(registro, diagnosisDay);
    preencher_espacos(comorbidity, 20);
    strcat(registro, "\n");
}


int cadastrar() {
    int opcao;
    fp = fopen("arquivo.txt", "a");

    if (fp == NULL) {
	return 0;
    }
   
    
    do {
        system("cls");
        printf("<<< Entrada de paciente >>>\n\n\n ");

        fflush(stdin);
        printf ("\nDigite o Nome do Paciente: ");
        gets(leitura);
        name = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!name)
        {
            printf ("** Erro: Memoria Insuficiente **");
            free(name);
            return 0;
        }
        strcpy(name, leitura);

        printf ("\nDigite o Email do Paciente: ");
        gets(leitura);
        email = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!email)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(email);
            return 0;
        }
        strcpy(email, leitura);

        printf ("\nDigite o CPF do Paciente ( Somente Numeros ): ");
        gets(leitura);
        cpf = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!cpf)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(cpf);
            return 0;
        }
        strcpy(cpf, leitura);

        printf ("\nData de nascimento do Paciente?\nNo formato DD/MM/AAAA: ");
        gets(leitura);
        birthDay = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!birthDay)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(birthDay);
            return 0;
        }
        strcpy(birthDay, leitura);

        printf ("\nDigite o telefone do Paciente (Somente Numeros ): ");
        gets(leitura);
        phoneNumber = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!phoneNumber)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(phoneNumber);
            return 0;
        }
        strcpy(phoneNumber, leitura);

        printf ("\nEndereço:\nLogradouro (rua, avenida, alameda ou outro): ");
        gets(leitura);
        street = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!street)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(street);
            return 0;
        }
        strcpy(street, leitura);

        printf ("\nNumero: ");
        gets(leitura);
        streetNumber = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!streetNumber)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(streetNumber);
            return 0;
        }
        strcpy(streetNumber, leitura);

        printf ("\nBairro: ");
        gets(leitura);
        neighborhood = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!neighborhood)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(neighborhood);
            return 0;
        }
        strcpy(neighborhood, leitura);

        printf ("\nCidade: ");
        gets(leitura);
        city = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!city)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(city);
            return 0;
        }
        strcpy(city, leitura);

        printf ("\nEstado: ");
        gets(leitura);
        state = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!state)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(state);
            return 0;
        }
        strcpy(state, leitura);

        printf ("\nCEP: ");
        gets(leitura);
        cep = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!cep)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(cep);
            return 0;
        }
        strcpy(cep, leitura);

        printf ("\nQual Dia do diagnostico?\nNo formato DD/MM/AAAA: ");
        gets(leitura);
        diagnosisDay = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!diagnosisDay)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(diagnosisDay);
            return 0;
        }
        strcpy(diagnosisDay, leitura);

        printf ("\n O paciente tem alguma comorbidade?");
        gets(leitura);
        comorbidity = (char *) calloc((strlen(leitura)+1), sizeof(char));
        if (!comorbidity)
        {
            printf ("** Erro: Memoria Insuficiente **");
                free(comorbidity);
            return 0;
        }
        strcpy(comorbidity, leitura);

        tratar_registro();

        fprintf(fp, "%s", registro);
 
	printf("\n\n\nCadastrar novo paciente? (1=Sim/0=Não) ");
        scanf("%d",&opcao);
	setbuf(stdin, NULL);
        printf("\n");

       } while (opcao != 0);

    free(name);
    free(email);
    free(cpf);
    free(birthDay);
    free(phoneNumber);
    free(street);
    free(streetNumber);
    free(neighborhood);
    free(city);
    free(state);
    free(cep);
    free(diagnosisDay);
    free(comorbidity);

    fclose(fp);

    printf ("\n\nTamanho do registro: %d caracteres\n\n", strlen(registro));

    system("pause");
    return 1;
 }

/*
int comorbidity_option() { // ler tipos de comorbidades
    printf("Qual o tipo de comorbidade?\nEscolha entre as opções:\n");
    printf("1- Diabetes");
    printf("2- Obesidade\n");
    printf("3- Hipertensão\n");
    printf("4- Tuberculose\n");
    printf("Opção: ");
    scanf("%d",&x);
    printf("\n");
    return x;

}
*/

int extrair_informacoes() {
    int base = 0, topo, suporte;
    int i, j;
    char auxiliar[50];

    name = (char *) calloc(51, sizeof(char));
    if (!name)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(name);
        return 0;
    }
    

    for (i=0;i<=49;i++) name[i] = registro[i];
    for (i=49;i>=0;i--)
	if (name[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = name[j];
    auxiliar[j] = '\0';
    strcpy(name, auxiliar);


    email = (char *) calloc(51, sizeof(char));
    if (!email)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(email);
        return 0;
    }

    for (i=50;i<=99;i++) email[i - 50] = registro[i];
    for (i=49;i>=0;i--)
	if (email[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = email[j];
    auxiliar[j] = '\0';
    strcpy(email, auxiliar);

    cpf = (char *) calloc(12, sizeof(char));
    if (!cpf)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(cpf);
        return 0;
    }

    for (i=100;i<=110;i++) cpf[i - 100] = registro[i];

    birthDay = (char *) calloc(11, sizeof(char));
    if (!birthDay)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(birthDay);
        return 0;
    }

    for (i=111;i<=120;i++) birthDay[i - 111] = registro[i];

    phoneNumber = (char *) calloc(51, sizeof(char));
    if (!phoneNumber)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(phoneNumber);
        return 0;
    }

    for (i=121;i<=135;i++) phoneNumber[i - 121] = registro[i];
    for (i=14;i>=0;i--)
	if (phoneNumber[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = phoneNumber[j];
    auxiliar[j] = '\0';
    strcpy(phoneNumber, auxiliar);

    street = (char *) calloc(51, sizeof(char));
    if (!street)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(street);
        return 0;
    }

    for (i=136;i<=185;i++) street[i - 136] = registro[i];
    for (i=49;i>=0;i--)
	if (street[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = street[j];
    auxiliar[j] = '\0';
    strcpy(street, auxiliar);

    streetNumber = (char *) calloc(11, sizeof(char));
    if (!streetNumber)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(streetNumber);
        return 0;
    }

    for (i=186;i<=195;i++) streetNumber[i - 186] = registro[i];
    for (i=9;i>=0;i--)
	if (streetNumber[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = streetNumber[j];
    auxiliar[j] = '\0';
    strcpy(streetNumber, auxiliar);

    neighborhood = (char *) calloc(31, sizeof(char));
    if (!neighborhood)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(neighborhood);
        return 0;
    }

    for (i=196;i<=225;i++) neighborhood[i - 196] = registro[i];
    for (i=29;i>=0;i--)
	if (neighborhood[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = neighborhood[j];
    auxiliar[j] = '\0';
    strcpy(neighborhood, auxiliar);

    city = (char *) calloc(31, sizeof(char));
    if (!city)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(city);
        return 0;
    }

    for (i=226;i<=255;i++) city[i - 226] = registro[i];
    for (i=29;i>=0;i--)
	if (city[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = city[j];
    auxiliar[j] = '\0';
    strcpy(city, auxiliar);

    state = (char *) calloc(3, sizeof(char));
    if (!state)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(state);
        return 0;
    }

    for (i=256;i<=257;i++) state[i - 256] = registro[i];

    cep = (char *) calloc(9, sizeof(char));
    if (!cep)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(cep);
        return 0;
    }

    for (i=258;i<=265;i++) cep[i - 258] = registro[i];

    diagnosisDay = (char *) calloc(11, sizeof(char));
    if (!diagnosisDay)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(diagnosisDay);
        return 0;
    }

    for (i=266;i<=275;i++) diagnosisDay[i - 266] = registro[i];

    comorbidity = (char *) calloc(21, sizeof(char));
    if (!comorbidity)
    {
        printf ("** Erro: Memoria Insuficiente **");
        free(comorbidity);
        return 0;
    }

    for (i=276;i<=295;i++) comorbidity[i - 276] = registro[i];
    for (i=19;i>=0;i--)
	if (comorbidity[i] != ' ') break;
    for (j=0;j<=i;j++) auxiliar[j] = comorbidity[j];
    auxiliar[j] = '\0';
    strcpy(comorbidity, auxiliar);
}


int consultar() {

    system("cls");

    fp = fopen("arquivo.txt", "r");

    if (fp == NULL) {
	return 0;
    }
  
    fgets(registro, 297, fp);

    extrair_informacoes();
    fclose(fp);
    return 1;
}

void pesquisar() {
    system("cls");
    printf("*** Pesquisa sendo construída ***\n\n");
    system("pause");
}


void imprimir() {
    system("cls");
    printf ("*** Consulta de Paciente ***\n\n\n\n\n");
    printf ("Nome do Paciente: %s<<<\n", name);
    printf ("E-mail: %s<<<\n", email);
    printf ("CPF: %s<<<\n", cpf);
    printf ("Data de Nascimento: %s\n", birthDay);
    printf ("Telefone: %s\n", phoneNumber);
    printf ("Endereço:\n");
    printf ("%s número: %s bairro: %s\n", street, streetNumber, neighborhood);
    printf ("cidade: %s estado: %s CEP: %s\n", city, state, cep);
    printf ("Data do diagnóstico: %s\n", diagnosisDay);
    printf ("Comorbidade: %s\n", comorbidity);
    printf ("\n\n * Dados do paciente recuperados do arquivo *\n\n");

    system ("pause");
}

// FIM FUNÇÕES

int main()
{
    int opcao;
    unsigned int cp=1252;

    //Respaldo do codepage original da consola
    unsigned int cpin = GetConsoleCP(); 
    unsigned int cpout = GetConsoleOutputCP(); 

    SetConsoleCP(cp); //Estabelecendo o codepage de entrada 1252(latin2)
    SetConsoleOutputCP(cp); //Estabelecendo o copage de saída 1252(latin2)

    if(validate_password()) {
	do {
	    opcao = read_option();
	    switch(opcao)
	    {
	        case 0:
		    system("cls");
		    printf ("* Você acabou de sair do sistema *\n\n");
		
	            // É importante voltar o cmd ao estado original, ou pode falhar outros programas.
    		    // Sempre será possível mudar o codepage usando SetConsoleCP e SetConsoleOutputCP.
		    SetConsoleCP(cpin);
		    SetConsoleOutputCP(cpout);

		    system("pause");
		    return 0;
	        case 1:
		    if(cadastrar()) imprimir();
		    else
		    {
			printf("\n\nErro na manipulacao do arquivo!\n\n");
			return 1;
		    }
		    break;
	        case 2:
		    if (consultar()) imprimir();
	            else printf ("\n\nHouve um problema com a manipulação do arquivo.\n\n");
		    system ("pause");
		    break;
	        case 3:
		    pesquisar();
		    break;
	    }
	   } while (1);
    }
}

 

@devair1010 consehuiria me ajudar?

  • Curtir 1

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...