Ir ao conteúdo
  • Cadastre-se

Victor Cesar

Membro Júnior
  • Posts

    6
  • Cadastrado em

  • Última visita

Reputação

0
  1. Oi galera, estou desenvolvendo um projeto para faculdade , mas estou com um problema em relação ao cpf deste código . N consigo salvar o valor da váriavel correto alguém ajuda ?E tb preciso de uma função para validar o cpf mas n sei como fazer =\ #define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h> //definindo as constantes, o local e nome dos arquivos a serem criados#define USUARIOS "Usuarios.bin"#define FILMES "Filmes.bin"#define AVALIACOES "Avaliacoes.bin" //definindo STRUCTS para recebimento dos dados://USUARIOStypedef struct Usuario{int cod;char nome[30];int idade;char sexo;int cpf; int data_alergia; char alergia [30]; char tratamento[30];}tUsu; //PROCEDIMENTOS E FUNCOES PARA MANIPULAR USUARIOSvoid cadastraUsu(char *nomeArq){ //PROCEDIMENTO PARA CADASTRAR O USUARIO int i;tUsu usuario;FILE*arq;usuario.cod = 0; system("cls");do{ //ENQUANTO A BUSCA RETORNAR 0 (ZERO) O PROGRAMA PEDIRÁ UM OUTRO CÓDIGO POIS O CÓDIGO DIGITADO JÁ ESTÁ EM USOprintf("\n=Digite 0 (zero) para voltar=\n Digite o codigo: ");scanf("%i", &usuario.cod); fflush(stdin);if (usuario.cod == 0){return;}if (usuario.cod > 0){//VERIFICA SE O CODIGO É MAIOR QUE ZERObusca(usuario.cod, &i); //VERIFICA SE O CODIGO DIGITADO JÁ ESTÁ EM USOif (i == 0){printf("\nCodigo ja esta em uso! Escolha outro codigo!\n\n");}}else{i = 0;printf("\nCodigo Invalido\n\n");system("pause");}} while (i == 0); if (!(arq = fopen(nomeArq, "ab"))){ //TESTA SE O ARQUIVO FOI ENCONTRADO E ABERTOprintf("\n\nErro ao abrir o arquivo!\n\n");system("pause");return;}printf("\nInforme o nome do paciente: ");//INSERE O NOME DO USUARIOfflush(stdin); gets(usuario.nome); fflush(stdin); do{printf("\nDigite o cpf: "); scanf("%d",&usuario.cpf); } while (usuario.cpf > 99999999999 || usuario.cpf == 00000000000); do{printf("\nDigite a Idade: ");// INSERE A IDADE DO USUARIOscanf("%i",&usuario.idade); fflush(stdin);if (usuario.idade <= 0 || usuario.idade >100){ //TESTA SE A IDADE É VÁLIDAprintf("\nIdade Invalida\n");}} while (usuario.idade <= 0 || usuario.idade >100); do{printf("\nDigite o sexo (M = Masculino ou F = Feminino): ");//INFORMA O SEXOscanf("%c", &usuario.sexo); fflush(stdin);usuario.sexo = tolower(usuario.sexo); //A função tolower converte caracteres em minúsculosif (usuario.sexo != 'm'&& usuario.sexo != 'f'){ //TESTA SE O SEXO É VÁLIDOprintf("\nSexo Invalido\n");}} while (usuario.sexo != 'm'&& usuario.sexo != 'f');printf("\nDigite a alergia:");fflush(stdin); gets(usuario.alergia); fflush(stdin); do {printf("\nDigite a data da alergia:");// data da alergia scanf("%d",&usuario.data_alergia);fflush(stdin); }while(usuario.data_alergia <0);printf("\nDigite o tratamento:");fflush(stdin); gets(usuario.tratamento); fflush(stdin); if (fwrite(&usuario, sizeof(tUsu), 1, arq) == 1){ //VERIFICA SE OS DADOS FORAM GRAVADOS NO ARQUIVOprintf("\n\nUsuario Cadastrado com Sucesso!\n\n");fclose(arq); //FECHA O ARQUIVOsystem("pause");}else{ //SE OS DADOS NAO FOREM GRAVADOS EXIBE A MENSAGEM DE ERROprintf("\n\nErro ao Salvar o Usuario no arquivo!\n\n");fclose(arq);system("pause");} }int busca(int cod, int *i){ //FUNÇÃO PARA BUSCAR DADOS NO ARQUIVO USUARIOStUsu usuario;FILE*arq;if (!(arq = fopen(USUARIOS, "a+b"))){ //TESTA SE O ARQUIVO FOI ABERTOprintf("\nErro ao abrir o Arquivo!\n\n");system("pause");return;}fread(&usuario, sizeof(tUsu), 1, arq);//FAZ A LEITURA DOS DADOS NO ARQUIVOwhile (!feof(arq)){ //ENQUANTO NÃO CHEGAR AO FIM DO ARQUIVO A BUSCA SERÁ FEITAif (cod == usuario.cod){*i = 0;//SE O CODIGO DE USUARIO JÁ ESTIVER EM USO RETORNA 0fclose(arq);return;}fread(&usuario, sizeof(tUsu), 1, arq);}if (cod != usuario.cod){*i = 1;//SE O CODIGO DO USUARIO NÃO ESTIVER EM USO RETORNA 1}fclose(arq);} void alterarUsu(char *nomeArq) {//PROCEDIMENTO PARA ALTERAR OS DADOS DO USUARIO int codigo, op, alterou = 0;tUsu usuario;FILE *arq; if (!(arq = fopen(nomeArq, "rb+"))) {printf("\nErro ao abrir o arquivo!\n\n");system("pause");return;}system("cls");printf("\n=Digite 0 (zero) para voltar=\n Digite o codigo: ");scanf("%d", &codigo); fflush(stdin);if (codigo == 0)return;fread(&usuario, sizeof(tUsu), 1, arq);//LÊ O ARQUIVO NO ENDEREÇO DA VARIÁVEL USUARIOsystem("cls");while (!feof(arq)) {//ATÉ QUE SE CHEGUE AO FIM DO ARQUIVO EXIBIRÁ OS USUARIOS ENCONTRADOS UM POR UM APÓS AS ALTERAÇÕES DO ANTERIORif (codigo == usuario.cod) { //SE ENCONTRADO O USUARIO: EXIBE NOME, IDADE, SEXO E TELEFONEprintf("\nNome: %s\n", usuario.nome);printf("\nIdade: %d\n", usuario.idade);printf("\nSexo: %c\n", usuario.sexo);printf("\nCpf: %d\n",usuario.cpf);printf("\nData da alergia:%d\n",usuario.data_alergia);printf("\nTratamento:%s\n",usuario.tratamento);printf("\nAlergia:%s\n",usuario.alergia);do {printf("\nDeseja alterar o nome (1-sim 2-nao): ");scanf("%d", &op); fflush(stdin);} while (op != 1 && op != 2);if (op == 1) {printf("\nDigite o nome: ");fflush(stdin);gets(usuario.nome); fflush(stdin);alterou = 1;}do {printf("\nDeseja alterar a idade (1-sim 2-nao): ");scanf("%d", &op); fflush(stdin);} while (op != 1 && op != 2);if (op == 1) {do{printf("\nDigite a idade: ");scanf("%d", &usuario.idade); fflush(stdin);} while (usuario.idade<0 || usuario.idade>100);alterou = 1;}do {printf("\nDeseja alterar o sexo (1-sim 2-nao): ");scanf("%d", &op); fflush(stdin);} while (op != 1 && op != 2);if (op == 1) {do{printf("\nDigite o sexo: ");scanf("%c", &usuario.sexo); fflush(stdin);} while (usuario.sexo != 'f' && usuario.sexo != 'm');alterou = 1;}do{printf("\nDeseja alterar alergia (1-sim 2-nao):");scanf("%d",&op); fflush(stdin);}while(op!= 1 && op !=2);if(op==1){ printf("\nDigite a alergia:"); fflush(stdin);gets(usuario.alergia); fflush(stdin);alterou = 1; } do{printf("\nDeseja alterar data da alergia (1-sim 2-nao):"); scanf("%d",&op);fflush(stdin);}while(op!=1 && op !=2);if(op==1){do{printf("\nDigite a data da alergia:");fflush(stdin);scanf("%d",&usuario.data_alergia); }while(usuario.data_alergia<000000 );} do{printf("\nDeseja alterar tratamento (1-sim 2 nao)");scanf("%d",&op);fflush(stdin);}while(op != 1 && op != 2);if(op==1){printf("\nDigite o tratamento"); fflush(stdin);gets(usuario.tratamento); fflush(stdin);alterou = 1; }do {printf("\nDeseja alterar o cpf (1-sim 2-nao): ");scanf("%d", &op); fflush(stdin);} while (op != 1 && op != 2);if (op == 1) {do{printf("\nDigite o cpf: ");fflush(stdin);scanf("%d", &usuario.cpf); fflush(stdin);} while (usuario.cpf >= 99999999999 || usuario.cpf<99999999999);alterou = 1;} if (alterou) {//SE A VARIÁVEL "ALTEROU" FOR NÃO NULAfseek(arq, sizeof(tUsu)*(codigo-1), SEEK_SET); //MOVE O PONTEIRO PARA UMA POSIÇÃO ANTERIOR NO ARQUIVOif (fwrite(&usuario, sizeof(tUsu), 1, arq) ==1) {printf("\nAlteracao salva com sucesso!\n\n"); }else {printf("\nErro na gravacao do arquivo!\n\n");}fflush(arq); // opcional, pois não vamos ler nada depois...}else {printf("\nNenhuma alteracao realizada!\n\n");}break;}fread(&usuario, sizeof(tUsu), 1, arq);}if (codigo != usuario.cod) {printf("\nCodigo nao cadastrado!\n\n");}fclose(arq);system("pause");} void consultarCodUsu(char *nomeArq){//PROCEDIMENTO PARA CONSULTAR O USUARIO PELO CODIGOint codigo;tUsu usuario;FILE *arq;do{if (!(arq = fopen(nomeArq, "a+b"))) {//SE NÃO ABRIR O ARQUIVO EXIBE MENSAGEM DE ERROprintf("\nErro ao abrir o arquivo!\n\n");system("pause");return;}system("cls");printf("\n=Digite (0) zero para voltar=\n Digite o codigo: ");scanf("%i", &codigo); fflush(stdin);if (codigo == 0)return; fread(&usuario, sizeof(tUsu), 1, arq);while (!feof(arq)) {if (codigo == usuario.cod) {printf("\n Usuario encontrado!\n\n");printf("\nCodigo: %d\n", usuario.cod);printf("\nNome: %s\n", usuario.nome);printf("\nIdade: %d\n", usuario.idade);printf("\nSexo: %c\n", usuario.sexo);printf("\nCpf: %d\n", usuario.cpf);printf("\nData alergia: %d\n",usuario.data_alergia);printf("\nTratamento: %s\n",usuario.tratamento);printf("\nAlergia: %s\n",usuario.alergia); system("\n\n\n\npause");break;}fread(&usuario, sizeof(tUsu), 1, arq);} if (codigo != usuario.cod) {printf("\n\nCodigo nao cadastrado!\n\n");system("\npause");}fclose(arq);} while (codigo != usuario.cod);} void consultarNomeUsu(char *nomeArq){//PROCEDIMENTO PARA CONSULTAR O USUARIO PELO NOMEchar nome[30];int i = 0;tUsu usuario;FILE *arq;system("cls");if (!(arq = fopen(nomeArq, "a+b"))) {printf("\nErro ao abrir o arquivo!\n\n");system("pause");return;}printf("\nDigite o Nome: ");fflush(stdin);gets(nome); fflush(stdin);rewind(arq); //RETORNA O PONTEIRO PARA O INÍCIO DO ARQUIVOfread(&usuario, sizeof(tUsu), 1, arq); if (strstr(usuario.nome, nome))//TESTA SE O NOME OU PARTE DELE REFERE-SE A ALGUM USUARIOprintf("\n USUARIOS ENCONTRADOS: \n\n");while (!feof(arq)) {if (strstr(usuario.nome, nome)) {printf("\nCodigo: %d\n", usuario.cod);printf("Nome: %s\n", usuario.nome);printf("Idade: %d\n", usuario.idade);printf("Sexo: %c\n", usuario.sexo);printf("Cpf: %d\n\n\n", usuario.cpf); printf("Data da alergia: %d\n",usuario.data_alergia); printf("Tratamento: %s\n",usuario.tratamento);printf("-------------------------------------------------\n\n");i++;}fread(&usuario, sizeof(tUsu), 1, arq);} if (!i) {printf("\n\nUsuario nao cadastrado!\n\n");}fclose(arq);system("pause");} void excluirCodUsu(char *nomeArq){//PROCEDIMENTO PARA EXCLUIR O USUARIO PELO CODIGOint codigo, excluiu = 0;int op;tUsu usuario;FILE *arqOrigem, *arqDestino; system("cls");do{if (!(arqOrigem = fopen(nomeArq, "rb"))) {printf("\nErro ao abrir o arquivo!\n\n");system("pause");return;}if (!(arqDestino = fopen("temp.bin", "wb"))) {//CRIA UM ARQUIVO TEMPORÁRIOprintf("\nErro ao abrir o arquivo temporario!\n\n");fclose(arqOrigem);system("pause");return;}printf("\n=Digite zero para voltar=\n Digite o codigo do usuario: ");fflush(stdin);scanf("%d", &codigo); fflush(stdin);if (codigo == 0)return;fread(&usuario, sizeof(tUsu), 1, arqOrigem);while (!feof(arqOrigem)) {if (codigo == usuario.cod) { //TESTA SE O CODIGO INFORMADO REFERE-SE A UM USUARIO EXISTENTEprintf("\n Usuario encontrado!\n\n");printf("Codigo: %d\n", usuario.cod);printf("Nome: %s\n", usuario.nome);printf("Idade: %d\n", usuario.idade);printf("Sexo: %c\n", usuario.sexo);printf("Cpf: %d\n", usuario.cpf);do{printf("\n\nDeseja excluir o usuario(1 - Sim ou 2 - Nao): ");//CONFIRMA SE REALMENTE QUER EXCLUIRfflush(stdin); scanf("%d", &op); fflush(stdin);} while (op != 1 && op != 2);if (op == 1)excluiu = 1;break;}else {fwrite(&usuario, sizeof(tUsu), 1, arqDestino);//GRAVA OS USUARIOS COM CODIGO DIFERENTE DO INFORMADO EM UM NOVO ARQUIVO}fread(&usuario, sizeof(tUsu), 1, arqOrigem);}fclose(arqOrigem);//FECHA O ARQUIVO DE ORIGEMfclose(arqDestino);//FEHA O ARQUIVO DE DESTINOif (excluiu) {//SE A VARIÁVEL "EXCLUIU" RETORNAR UM VALOR NÃO NULOremove(nomeArq);//FUNÇÃO QUE DELETA UM ARQUIVOrename("temp.bin", nomeArq);//FUNÇÃO QUE RENOMEIA UM ARQUIVOprintf("\n\nExclusao realizada com sucesso!\n\n"); }else if (codigo != usuario.cod){//SE NÃO FOR ENCONTRADO UM USUARIO COM O CODIGO INFORMADOremove("temp.bin");//DELETA O NOVO ARQUIVO CRIADO (arqDestino)printf("\n\nCodigo nao cadastrado!\n\n");system("pause");}else {//SE A VARIÁVEL "EXCLUIU" RETORNAR UM VALOR NULOremove("temp.bin");//DELETA O NOVO ARQUIVO CRIADO (arqDestino)printf("\n\nExclusao nao realizada!\n\n");system("pause");}} while (codigo != usuario.cod);}void excluirNomeUsu(char *nomeArq){//PROCEDIMENTO PARA EXCLUIR O USUARIO PELO NOME OU PARTE DO NOMEchar nome[30];int excluiu = 0, op, codigoU;tUsu usuario;FILE *arqOrigem, *arqDestino; system("cls");if (!(arqOrigem = fopen(nomeArq, "rb"))) {printf("\nErro ao abrir o arquivo!\n\n");system("pause");return;}if (!(arqDestino = fopen("temp.bin", "wb"))) {//CRIA UM ARQUIVO TEMPORÁRIOprintf("\nErro ao abrir o arquivo temporario!\n\n");fclose(arqOrigem);system("pause");return;}printf("\nDigite o nome do usuario: ");fflush(stdin);gets(nome); fflush(stdin);fread(&usuario, sizeof(tUsu), 1, arqOrigem);while (!feof(arqOrigem)) {if (strstr(usuario.nome, nome)) {//TESTA SE O NOME OU PARTE DELE REFERE-SE A ALGUM USUARIOprintf("\n Usuario encontrado!\n\n");printf("Codigo: %d\n", usuario.cod);printf("Nome: %s\n", usuario.nome);printf("Idade: %d\n", usuario.idade);printf("Sexo: %c\n", usuario.sexo);printf("Cpf: %d\n", usuario.cpf);printf("Data da alergia: %d\n",usuario.data_alergia);printf("Tratamento: %s\n",usuario.tratamento);do{printf("\n\nDeseja excluir o usuario(1 - Sim ou 2 - Nao): ");//CONFIRMA SE REALMENTE DESEJA EXCLUIRfflush(stdin); scanf("%d", &op); fflush(stdin);} while (op != 1 && op != 2);if (op == 1){excluiu = 1;codigoU = usuario.cod;}}else {fwrite(&usuario, sizeof(tUsu), 1, arqDestino);//GRAVA OS USUARIOS COM NOME DIFERENTE DO INFORMADO EM UM NOVO ARQUIVO}fread(&usuario, sizeof(tUsu), 1, arqOrigem);}fclose(arqOrigem);fclose(arqDestino);if (excluiu) {//SE A VARIÁVEL "EXCLUIU" FOR NÃO NULAremove(nomeArq);//REMOVE ARQUIVO DE ORIGEMrename("temp.bin", nomeArq);//RENOMEIA ARQUIVO TEMPORARIOprintf("\n\nExclusao realizada com sucesso!\n\n"); }else if (op == 2){//SE NÃO EXCLUIR USUARIOremove("temp.bin");//DELETA ARQUIVO TEMPORARIOprintf("\n\nExclusao nao realizada!\n\n");system("pause");}else {//SE NÃO FOR ENCONTRADO USUARIO CORRESPONDENTEremove("temp.bin");//DELETA ARQUIVO TEMPORÁRIOprintf("\n\nUsuario nao cadastrado!\n\n");system("pause");}} void listarUsu(char *nomeArq) {//PROCEDIMENTO PARA LISTAR TODOS OS USUARIOS CADASTRADOStUsu usuario;FILE *arq;if (!(arq = fopen(nomeArq, "rb"))) {printf("\nErro ao abrir o arquivo!\n\n");system("pause");return;} system("cls");printf("\n\nL I S T A G E M\n\n");fread(&usuario, sizeof(tUsu), 1, arq);while (!feof(arq)) {printf("Codigo: %d\n", usuario.cod);printf("Nome: %s\n", usuario.nome);printf("Idade: %d\n", usuario.idade);printf("Sexo: %c\n", usuario.sexo);printf("Cpf: %d\n",usuario.cpf); printf("Data da alergia: %d\n",usuario.data_alergia);printf("Tratamento: %s\n",usuario.tratamento); printf("Alergia: %s\n",usuario.alergia);fread(&usuario, sizeof(tUsu), 1, arq);} fclose(arq);system("pause");} //MENU PRINCIPAL main(){int op, op1, op2, op3, op4;char resp = 's'; system("color 4f");printf("********************************************************************************");printf("** ************************************************************************* ***");printf("* ======================================================================= **");printf("** | | ***");printf("**|| [][][] [][[] [][][] [[] []] [][][] ||***");printf("**|| [][][] [][[] [] [] [][] [][] [] [] ||***");printf("**|| [] [] [] [] [] [] [] [][][] ||***");printf("**|| [][] [] [] [] [] [] [] ||***");printf("**|| [] [] [] [] [] [] [] ||***");printf("**|| [][][] [][[] [] [] [] [] [] ||***");printf("**|| [][][] [][[] [][][] [] [] [] ||***");printf("** | | ***");printf("* ======================================================================= **");printf("** ***********************************************/ ********************** ***");printf("************************************************/ * / *************************");printf("************| | | |**************/ * / ************************");printf("************| * | | * |************/ * / ***********************");printf("************| | | |**********/ * / **********************");printf("************| * | | * |********/ * / *********************");printf("************| | | |******/ * / / ********************");printf("************| * | | * |****/ * / / * /******************");printf("************| | | |**/ * / / * /********************");printf(" BEM VINDO ");printf("\n ");system("pause");do{system("color 4f");//ALTERA A COR DE FUNDO E DA FONTE do{op = -1;system("cls");printf("\n* = * = MENU PRINCIPAL = * = * = * = * = * = * = * = * = * =*\n\n");printf("* *\n\n");printf("* 1 - Menu Usuario *\n\n"); printf("* 0 - Sair *\n\n");printf("* *\n\n");printf("* = * = * = * = * = * = * = * = * = * = * = * = * = * = * = *");//printf("\n* Desenvolvido por: *\n");printf("\n* Equipe: *\n");printf("* = * = * = * = * = * = * = * = * = * = * = * = * = * = * = *");printf("\n\n\nDIGITE A OPCAO : ");fflush(stdin);scanf("%i", &op); fflush(stdin);if (op > 1 || op < 0){printf("\n\nOpcao invalida!\n\n");system("pause");
  2. Oi galera, estou desenvolvendo um projeto para faculdade , mas estou com um problema em relação ao cpf deste código . N consigo salvar o valor da váriavel correto alguém ajuda ?E tb preciso de uma função para validar o cpf mas n sei como fazer =\ #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> //definindo as constantes, o local e nome dos arquivos a serem criados #define USUARIOS "Usuarios.bin" #define FILMES "Filmes.bin" #define AVALIACOES "Avaliacoes.bin" //definindo STRUCTS para recebimento dos dados: //USUARIOS typedef struct Usuario{ int cod; char nome[30]; int idade; char sexo; int cpf; int data_alergia; char alergia [30]; char tratamento[30]; }tUsu; //PROCEDIMENTOS E FUNCOES PARA MANIPULAR USUARIOS void cadastraUsu(char *nomeArq){ //PROCEDIMENTO PARA CADASTRAR O USUARIO int i; tUsu usuario; FILE*arq; usuario.cod = 0; system("cls"); do{ //ENQUANTO A BUSCA RETORNAR 0 (ZERO) O PROGRAMA PEDIRÁ UM OUTRO CÓDIGO POIS O CÓDIGO DIGITADO JÁ ESTÁ EM USO printf("\n=Digite 0 (zero) para voltar=\n Digite o codigo: "); scanf("%i", &usuario.cod); fflush(stdin); if (usuario.cod == 0){ return; } if (usuario.cod > 0){//VERIFICA SE O CODIGO É MAIOR QUE ZERO busca(usuario.cod, &i); //VERIFICA SE O CODIGO DIGITADO JÁ ESTÁ EM USO if (i == 0){ printf("\nCodigo ja esta em uso! Escolha outro codigo!\n\n"); } } else{ i = 0; printf("\nCodigo Invalido\n\n"); system("pause"); } } while (i == 0); if (!(arq = fopen(nomeArq, "ab"))){ //TESTA SE O ARQUIVO FOI ENCONTRADO E ABERTO printf("\n\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } printf("\nInforme o nome do paciente: ");//INSERE O NOME DO USUARIO fflush(stdin); gets(usuario.nome); fflush(stdin); do { printf("\nDigite o cpf: "); scanf("%d",&usuario.cpf); } while (usuario.cpf > 99999999999 || usuario.cpf == 00000000000); do { printf("\nDigite a Idade: ");// INSERE A IDADE DO USUARIO scanf("%i",&usuario.idade); fflush(stdin); if (usuario.idade <= 0 || usuario.idade >100){ //TESTA SE A IDADE É VÁLIDA printf("\nIdade Invalida\n"); } } while (usuario.idade <= 0 || usuario.idade >100); do { printf("\nDigite o sexo (M = Masculino ou F = Feminino): ");//INFORMA O SEXO scanf("%c", &usuario.sexo); fflush(stdin); usuario.sexo = tolower(usuario.sexo); //A função tolower converte caracteres em minúsculos if (usuario.sexo != 'm'&& usuario.sexo != 'f'){ //TESTA SE O SEXO É VÁLIDO printf("\nSexo Invalido\n"); } } while (usuario.sexo != 'm'&& usuario.sexo != 'f'); printf("\nDigite a alergia:"); fflush(stdin); gets(usuario.alergia); fflush(stdin); do {printf("\nDigite a data da alergia:");// data da alergia scanf("%d",&usuario.data_alergia);fflush(stdin); }while(usuario.data_alergia <0); printf("\nDigite o tratamento:"); fflush(stdin); gets(usuario.tratamento); fflush(stdin); if (fwrite(&usuario, sizeof(tUsu), 1, arq) == 1){ //VERIFICA SE OS DADOS FORAM GRAVADOS NO ARQUIVO printf("\n\nUsuario Cadastrado com Sucesso!\n\n"); fclose(arq); //FECHA O ARQUIVO system("pause"); } else{ //SE OS DADOS NAO FOREM GRAVADOS EXIBE A MENSAGEM DE ERRO printf("\n\nErro ao Salvar o Usuario no arquivo!\n\n"); fclose(arq); system("pause"); } } int busca(int cod, int *i){ //FUNÇÃO PARA BUSCAR DADOS NO ARQUIVO USUARIOS tUsu usuario; FILE*arq; if (!(arq = fopen(USUARIOS, "a+b"))){ //TESTA SE O ARQUIVO FOI ABERTO printf("\nErro ao abrir o Arquivo!\n\n"); system("pause"); return; } fread(&usuario, sizeof(tUsu), 1, arq);//FAZ A LEITURA DOS DADOS NO ARQUIVO while (!feof(arq)){ //ENQUANTO NÃO CHEGAR AO FIM DO ARQUIVO A BUSCA SERÁ FEITA if (cod == usuario.cod){ *i = 0;//SE O CODIGO DE USUARIO JÁ ESTIVER EM USO RETORNA 0 fclose(arq); return; } fread(&usuario, sizeof(tUsu), 1, arq); } if (cod != usuario.cod){ *i = 1;//SE O CODIGO DO USUARIO NÃO ESTIVER EM USO RETORNA 1 } fclose(arq); } void alterarUsu(char *nomeArq) {//PROCEDIMENTO PARA ALTERAR OS DADOS DO USUARIO int codigo, op, alterou = 0; tUsu usuario; FILE *arq; if (!(arq = fopen(nomeArq, "rb+"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } system("cls"); printf("\n=Digite 0 (zero) para voltar=\n Digite o codigo: "); scanf("%d", &codigo); fflush(stdin); if (codigo == 0) return; fread(&usuario, sizeof(tUsu), 1, arq);//LÊ O ARQUIVO NO ENDEREÇO DA VARIÁVEL USUARIO system("cls"); while (!feof(arq)) {//ATÉ QUE SE CHEGUE AO FIM DO ARQUIVO EXIBIRÁ OS USUARIOS ENCONTRADOS UM POR UM APÓS AS ALTERAÇÕES DO ANTERIOR if (codigo == usuario.cod) { //SE ENCONTRADO O USUARIO: EXIBE NOME, IDADE, SEXO E TELEFONE printf("\nNome: %s\n", usuario.nome); printf("\nIdade: %d\n", usuario.idade); printf("\nSexo: %c\n", usuario.sexo); printf("\nCpf: %d\n",usuario.cpf); printf("\nData da alergia:%d\n",usuario.data_alergia); printf("\nTratamento:%s\n",usuario.tratamento); printf("\nAlergia:%s\n",usuario.alergia); do { printf("\nDeseja alterar o nome (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { printf("\nDigite o nome: "); fflush(stdin); gets(usuario.nome); fflush(stdin); alterou = 1; } do { printf("\nDeseja alterar a idade (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { do{ printf("\nDigite a idade: "); scanf("%d", &usuario.idade); fflush(stdin); } while (usuario.idade<0 || usuario.idade>100); alterou = 1; } do { printf("\nDeseja alterar o sexo (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { do{ printf("\nDigite o sexo: "); scanf("%c", &usuario.sexo); fflush(stdin); } while (usuario.sexo != 'f' && usuario.sexo != 'm'); alterou = 1; } do{ printf("\nDeseja alterar alergia (1-sim 2-nao):"); scanf("%d",&op); fflush(stdin); }while(op!= 1 && op !=2); if(op==1){ printf("\nDigite a alergia:"); fflush(stdin); gets(usuario.alergia); fflush(stdin); alterou = 1; } do{printf("\nDeseja alterar data da alergia (1-sim 2-nao):"); scanf("%d",&op);fflush(stdin); }while(op!=1 && op !=2); if(op==1){do{printf("\nDigite a data da alergia:");fflush(stdin); scanf("%d",&usuario.data_alergia); }while(usuario.data_alergia<000000 ); } do{printf("\nDeseja alterar tratamento (1-sim 2 nao)"); scanf("%d",&op);fflush(stdin); }while(op != 1 && op != 2); if(op==1){ printf("\nDigite o tratamento"); fflush(stdin); gets(usuario.tratamento); fflush(stdin); alterou = 1; } do { printf("\nDeseja alterar o cpf (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { do{ printf("\nDigite o cpf: "); fflush(stdin); scanf("%d", &usuario.cpf); fflush(stdin); } while (usuario.cpf >= 99999999999 || usuario.cpf<99999999999); alterou = 1; } if (alterou) {//SE A VARIÁVEL "ALTEROU" FOR NÃO NULA fseek(arq, sizeof(tUsu)*(codigo-1), SEEK_SET); //MOVE O PONTEIRO PARA UMA POSIÇÃO ANTERIOR NO ARQUIVO if (fwrite(&usuario, sizeof(tUsu), 1, arq) ==1) { printf("\nAlteracao salva com sucesso!\n\n"); } else { printf("\nErro na gravacao do arquivo!\n\n"); } fflush(arq); // opcional, pois não vamos ler nada depois... } else { printf("\nNenhuma alteracao realizada!\n\n"); } break; } fread(&usuario, sizeof(tUsu), 1, arq); } if (codigo != usuario.cod) { printf("\nCodigo nao cadastrado!\n\n"); } fclose(arq); system("pause"); } void consultarCodUsu(char *nomeArq){//PROCEDIMENTO PARA CONSULTAR O USUARIO PELO CODIGO int codigo; tUsu usuario; FILE *arq; do{ if (!(arq = fopen(nomeArq, "a+b"))) {//SE NÃO ABRIR O ARQUIVO EXIBE MENSAGEM DE ERRO printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } system("cls"); printf("\n=Digite (0) zero para voltar=\n Digite o codigo: "); scanf("%i", &codigo); fflush(stdin); if (codigo == 0) return; fread(&usuario, sizeof(tUsu), 1, arq); while (!feof(arq)) { if (codigo == usuario.cod) { printf("\n Usuario encontrado!\n\n"); printf("\nCodigo: %d\n", usuario.cod); printf("\nNome: %s\n", usuario.nome); printf("\nIdade: %d\n", usuario.idade); printf("\nSexo: %c\n", usuario.sexo); printf("\nCpf: %d\n", usuario.cpf); printf("\nData alergia: %d\n",usuario.data_alergia); printf("\nTratamento: %s\n",usuario.tratamento); printf("\nAlergia: %s\n",usuario.alergia); system("\n\n\n\npause"); break; } fread(&usuario, sizeof(tUsu), 1, arq); } if (codigo != usuario.cod) { printf("\n\nCodigo nao cadastrado!\n\n"); system("\npause"); } fclose(arq); } while (codigo != usuario.cod); } void consultarNomeUsu(char *nomeArq){//PROCEDIMENTO PARA CONSULTAR O USUARIO PELO NOME char nome[30]; int i = 0; tUsu usuario; FILE *arq; system("cls"); if (!(arq = fopen(nomeArq, "a+b"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } printf("\nDigite o Nome: "); fflush(stdin); gets(nome); fflush(stdin); rewind(arq); //RETORNA O PONTEIRO PARA O INÍCIO DO ARQUIVO fread(&usuario, sizeof(tUsu), 1, arq); if (strstr(usuario.nome, nome))//TESTA SE O NOME OU PARTE DELE REFERE-SE A ALGUM USUARIO printf("\n USUARIOS ENCONTRADOS: \n\n"); while (!feof(arq)) { if (strstr(usuario.nome, nome)) { printf("\nCodigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n\n\n", usuario.cpf); printf("Data da alergia: %d\n",usuario.data_alergia); printf("Tratamento: %s\n",usuario.tratamento); printf("-------------------------------------------------\n\n"); i++; } fread(&usuario, sizeof(tUsu), 1, arq); } if (!i) { printf("\n\nUsuario nao cadastrado!\n\n"); } fclose(arq); system("pause"); } void excluirCodUsu(char *nomeArq){//PROCEDIMENTO PARA EXCLUIR O USUARIO PELO CODIGO int codigo, excluiu = 0; int op; tUsu usuario; FILE *arqOrigem, *arqDestino; system("cls"); do{ if (!(arqOrigem = fopen(nomeArq, "rb"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } if (!(arqDestino = fopen("temp.bin", "wb"))) {//CRIA UM ARQUIVO TEMPORÁRIO printf("\nErro ao abrir o arquivo temporario!\n\n"); fclose(arqOrigem); system("pause"); return; } printf("\n=Digite zero para voltar=\n Digite o codigo do usuario: "); fflush(stdin); scanf("%d", &codigo); fflush(stdin); if (codigo == 0) return; fread(&usuario, sizeof(tUsu), 1, arqOrigem); while (!feof(arqOrigem)) { if (codigo == usuario.cod) { //TESTA SE O CODIGO INFORMADO REFERE-SE A UM USUARIO EXISTENTE printf("\n Usuario encontrado!\n\n"); printf("Codigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n", usuario.cpf); do{ printf("\n\nDeseja excluir o usuario(1 - Sim ou 2 - Nao): ");//CONFIRMA SE REALMENTE QUER EXCLUIR fflush(stdin); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) excluiu = 1; break; } else { fwrite(&usuario, sizeof(tUsu), 1, arqDestino);//GRAVA OS USUARIOS COM CODIGO DIFERENTE DO INFORMADO EM UM NOVO ARQUIVO } fread(&usuario, sizeof(tUsu), 1, arqOrigem); } fclose(arqOrigem);//FECHA O ARQUIVO DE ORIGEM fclose(arqDestino);//FEHA O ARQUIVO DE DESTINO if (excluiu) {//SE A VARIÁVEL "EXCLUIU" RETORNAR UM VALOR NÃO NULO remove(nomeArq);//FUNÇÃO QUE DELETA UM ARQUIVO rename("temp.bin", nomeArq);//FUNÇÃO QUE RENOMEIA UM ARQUIVO printf("\n\nExclusao realizada com sucesso!\n\n"); } else if (codigo != usuario.cod){//SE NÃO FOR ENCONTRADO UM USUARIO COM O CODIGO INFORMADO remove("temp.bin");//DELETA O NOVO ARQUIVO CRIADO (arqDestino) printf("\n\nCodigo nao cadastrado!\n\n"); system("pause"); } else {//SE A VARIÁVEL "EXCLUIU" RETORNAR UM VALOR NULO remove("temp.bin");//DELETA O NOVO ARQUIVO CRIADO (arqDestino) printf("\n\nExclusao nao realizada!\n\n"); system("pause"); } } while (codigo != usuario.cod); } void excluirNomeUsu(char *nomeArq){//PROCEDIMENTO PARA EXCLUIR O USUARIO PELO NOME OU PARTE DO NOME char nome[30]; int excluiu = 0, op, codigoU; tUsu usuario; FILE *arqOrigem, *arqDestino; system("cls"); if (!(arqOrigem = fopen(nomeArq, "rb"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } if (!(arqDestino = fopen("temp.bin", "wb"))) {//CRIA UM ARQUIVO TEMPORÁRIO printf("\nErro ao abrir o arquivo temporario!\n\n"); fclose(arqOrigem); system("pause"); return; } printf("\nDigite o nome do usuario: "); fflush(stdin); gets(nome); fflush(stdin); fread(&usuario, sizeof(tUsu), 1, arqOrigem); while (!feof(arqOrigem)) { if (strstr(usuario.nome, nome)) {//TESTA SE O NOME OU PARTE DELE REFERE-SE A ALGUM USUARIO printf("\n Usuario encontrado!\n\n"); printf("Codigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n", usuario.cpf); printf("Data da alergia: %d\n",usuario.data_alergia); printf("Tratamento: %s\n",usuario.tratamento); do{ printf("\n\nDeseja excluir o usuario(1 - Sim ou 2 - Nao): ");//CONFIRMA SE REALMENTE DESEJA EXCLUIR fflush(stdin); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1){ excluiu = 1; codigoU = usuario.cod; } } else { fwrite(&usuario, sizeof(tUsu), 1, arqDestino);//GRAVA OS USUARIOS COM NOME DIFERENTE DO INFORMADO EM UM NOVO ARQUIVO } fread(&usuario, sizeof(tUsu), 1, arqOrigem); } fclose(arqOrigem); fclose(arqDestino); if (excluiu) {//SE A VARIÁVEL "EXCLUIU" FOR NÃO NULA remove(nomeArq);//REMOVE ARQUIVO DE ORIGEM rename("temp.bin", nomeArq);//RENOMEIA ARQUIVO TEMPORARIO printf("\n\nExclusao realizada com sucesso!\n\n"); } else if (op == 2){//SE NÃO EXCLUIR USUARIO remove("temp.bin");//DELETA ARQUIVO TEMPORARIO printf("\n\nExclusao nao realizada!\n\n"); system("pause"); } else {//SE NÃO FOR ENCONTRADO USUARIO CORRESPONDENTE remove("temp.bin");//DELETA ARQUIVO TEMPORÁRIO printf("\n\nUsuario nao cadastrado!\n\n"); system("pause"); } } void listarUsu(char *nomeArq) {//PROCEDIMENTO PARA LISTAR TODOS OS USUARIOS CADASTRADOS tUsu usuario; FILE *arq; if (!(arq = fopen(nomeArq, "rb"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } system("cls"); printf("\n\nL I S T A G E M\n\n"); fread(&usuario, sizeof(tUsu), 1, arq); while (!feof(arq)) { printf("Codigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n",usuario.cpf); printf("Data da alergia: %d\n",usuario.data_alergia); printf("Tratamento: %s\n",usuario.tratamento); printf("Alergia: %s\n",usuario.alergia); fread(&usuario, sizeof(tUsu), 1, arq); } fclose(arq); system("pause"); } //MENU PRINCIPAL main(){ int op, op1, op2, op3, op4; char resp = 's'; system("color 4f"); printf("********************************************************************************"); printf("** ************************************************************************* ***"); printf("* ======================================================================= **"); printf("** | | ***"); printf("**|| [][][] [][[] [][][] [[] []] [][][] ||***"); printf("**|| [][][] [][[] [] [] [][] [][] [] [] ||***"); printf("**|| [] [] [] [] [] [] [] [][][] ||***"); printf("**|| [][] [] [] [] [] [] [] ||***"); printf("**|| [] [] [] [] [] [] [] ||***"); printf("**|| [][][] [][[] [] [] [] [] [] ||***"); printf("**|| [][][] [][[] [][][] [] [] [] ||***"); printf("** | | ***"); printf("* ======================================================================= **"); printf("** ***********************************************/ ********************** ***"); printf("************************************************/ * / *************************"); printf("************| | | |**************/ * / ************************"); printf("************| * | | * |************/ * / ***********************"); printf("************| | | |**********/ * / **********************"); printf("************| * | | * |********/ * / *********************"); printf("************| | | |******/ * / / ********************"); printf("************| * | | * |****/ * / / * /******************"); printf("************| | | |**/ * / / * /********************"); printf(" BEM VINDO "); printf("\n "); system("pause"); do{ system("color 4f");//ALTERA A COR DE FUNDO E DA FONTE do{ op = -1; system("cls"); printf("\n* = * = MENU PRINCIPAL = * = * = * = * = * = * = * = * = * =*\n\n"); printf("* *\n\n"); printf("* 1 - Menu Usuario *\n\n"); printf("* 0 - Sair *\n\n"); printf("* *\n\n"); printf("* = * = * = * = * = * = * = * = * = * = * = * = * = * = * = *"); //printf("\n* Desenvolvido por: *\n"); printf("\n* Equipe: *\n"); printf("* = * = * = * = * = * = * = * = * = * = * = * = * = * = * = *"); printf("\n\n\nDIGITE A OPCAO : "); fflush(stdin); scanf("%i", &op); fflush(stdin); if (op > 1 || op < 0){ printf("\n\nOpcao invalida!\n\n"); system("pause");
  3. Oi galera, estou desenvolvendo um projeto para faculdade , mas estou com um problema em relação ao cpf deste código . N consigo salvar o valor da váriavel correto alguém ajuda ?E tb preciso de uma função para validar o cpf mas n sei como fazer =\ #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> //definindo as constantes, o local e nome dos arquivos a serem criados #define USUARIOS "Usuarios.bin" #define FILMES "Filmes.bin" #define AVALIACOES "Avaliacoes.bin" //definindo STRUCTS para recebimento dos dados: //USUARIOS typedef struct Usuario{ int cod; char nome[30]; int idade; char sexo; int cpf; int data_alergia; char alergia [30]; char tratamento[30]; }tUsu; //PROCEDIMENTOS E FUNCOES PARA MANIPULAR USUARIOS void cadastraUsu(char *nomeArq){ //PROCEDIMENTO PARA CADASTRAR O USUARIO int i; tUsu usuario; FILE*arq; usuario.cod = 0; system("cls"); do{ //ENQUANTO A BUSCA RETORNAR 0 (ZERO) O PROGRAMA PEDIRÁ UM OUTRO CÓDIGO POIS O CÓDIGO DIGITADO JÁ ESTÁ EM USO printf("\n=Digite 0 (zero) para voltar=\n Digite o codigo: "); scanf("%i", &usuario.cod); fflush(stdin); if (usuario.cod == 0){ return; } if (usuario.cod > 0){//VERIFICA SE O CODIGO É MAIOR QUE ZERO busca(usuario.cod, &i); //VERIFICA SE O CODIGO DIGITADO JÁ ESTÁ EM USO if (i == 0){ printf("\nCodigo ja esta em uso! Escolha outro codigo!\n\n"); } } else{ i = 0; printf("\nCodigo Invalido\n\n"); system("pause"); } } while (i == 0); if (!(arq = fopen(nomeArq, "ab"))){ //TESTA SE O ARQUIVO FOI ENCONTRADO E ABERTO printf("\n\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } printf("\nInforme o nome do paciente: ");//INSERE O NOME DO USUARIO fflush(stdin); gets(usuario.nome); fflush(stdin); do { printf("\nDigite o cpf: "); scanf("%d",&usuario.cpf); } while (usuario.cpf > 99999999999 || usuario.cpf == 00000000000); do { printf("\nDigite a Idade: ");// INSERE A IDADE DO USUARIO scanf("%i",&usuario.idade); fflush(stdin); if (usuario.idade <= 0 || usuario.idade >100){ //TESTA SE A IDADE É VÁLIDA printf("\nIdade Invalida\n"); } } while (usuario.idade <= 0 || usuario.idade >100); do { printf("\nDigite o sexo (M = Masculino ou F = Feminino): ");//INFORMA O SEXO scanf("%c", &usuario.sexo); fflush(stdin); usuario.sexo = tolower(usuario.sexo); //A função tolower converte caracteres em minúsculos if (usuario.sexo != 'm'&& usuario.sexo != 'f'){ //TESTA SE O SEXO É VÁLIDO printf("\nSexo Invalido\n"); } } while (usuario.sexo != 'm'&& usuario.sexo != 'f'); printf("\nDigite a alergia:"); fflush(stdin); gets(usuario.alergia); fflush(stdin); do {printf("\nDigite a data da alergia:");// data da alergia scanf("%d",&usuario.data_alergia);fflush(stdin); }while(usuario.data_alergia <0); printf("\nDigite o tratamento:"); fflush(stdin); gets(usuario.tratamento); fflush(stdin); if (fwrite(&usuario, sizeof(tUsu), 1, arq) == 1){ //VERIFICA SE OS DADOS FORAM GRAVADOS NO ARQUIVO printf("\n\nUsuario Cadastrado com Sucesso!\n\n"); fclose(arq); //FECHA O ARQUIVO system("pause"); } else{ //SE OS DADOS NAO FOREM GRAVADOS EXIBE A MENSAGEM DE ERRO printf("\n\nErro ao Salvar o Usuario no arquivo!\n\n"); fclose(arq); system("pause"); } } int busca(int cod, int *i){ //FUNÇÃO PARA BUSCAR DADOS NO ARQUIVO USUARIOS tUsu usuario; FILE*arq; if (!(arq = fopen(USUARIOS, "a+b"))){ //TESTA SE O ARQUIVO FOI ABERTO printf("\nErro ao abrir o Arquivo!\n\n"); system("pause"); return; } fread(&usuario, sizeof(tUsu), 1, arq);//FAZ A LEITURA DOS DADOS NO ARQUIVO while (!feof(arq)){ //ENQUANTO NÃO CHEGAR AO FIM DO ARQUIVO A BUSCA SERÁ FEITA if (cod == usuario.cod){ *i = 0;//SE O CODIGO DE USUARIO JÁ ESTIVER EM USO RETORNA 0 fclose(arq); return; } fread(&usuario, sizeof(tUsu), 1, arq); } if (cod != usuario.cod){ *i = 1;//SE O CODIGO DO USUARIO NÃO ESTIVER EM USO RETORNA 1 } fclose(arq); } void alterarUsu(char *nomeArq) {//PROCEDIMENTO PARA ALTERAR OS DADOS DO USUARIO int codigo, op, alterou = 0; tUsu usuario; FILE *arq; if (!(arq = fopen(nomeArq, "rb+"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } system("cls"); printf("\n=Digite 0 (zero) para voltar=\n Digite o codigo: "); scanf("%d", &codigo); fflush(stdin); if (codigo == 0) return; fread(&usuario, sizeof(tUsu), 1, arq);//LÊ O ARQUIVO NO ENDEREÇO DA VARIÁVEL USUARIO system("cls"); while (!feof(arq)) {//ATÉ QUE SE CHEGUE AO FIM DO ARQUIVO EXIBIRÁ OS USUARIOS ENCONTRADOS UM POR UM APÓS AS ALTERAÇÕES DO ANTERIOR if (codigo == usuario.cod) { //SE ENCONTRADO O USUARIO: EXIBE NOME, IDADE, SEXO E TELEFONE printf("\nNome: %s\n", usuario.nome); printf("\nIdade: %d\n", usuario.idade); printf("\nSexo: %c\n", usuario.sexo); printf("\nCpf: %d\n",usuario.cpf); printf("\nData da alergia:%d\n",usuario.data_alergia); printf("\nTratamento:%s\n",usuario.tratamento); printf("\nAlergia:%s\n",usuario.alergia); do { printf("\nDeseja alterar o nome (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { printf("\nDigite o nome: "); fflush(stdin); gets(usuario.nome); fflush(stdin); alterou = 1; } do { printf("\nDeseja alterar a idade (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { do{ printf("\nDigite a idade: "); scanf("%d", &usuario.idade); fflush(stdin); } while (usuario.idade<0 || usuario.idade>100); alterou = 1; } do { printf("\nDeseja alterar o sexo (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { do{ printf("\nDigite o sexo: "); scanf("%c", &usuario.sexo); fflush(stdin); } while (usuario.sexo != 'f' && usuario.sexo != 'm'); alterou = 1; } do{ printf("\nDeseja alterar alergia (1-sim 2-nao):"); scanf("%d",&op); fflush(stdin); }while(op!= 1 && op !=2); if(op==1){ printf("\nDigite a alergia:"); fflush(stdin); gets(usuario.alergia); fflush(stdin); alterou = 1; } do{printf("\nDeseja alterar data da alergia (1-sim 2-nao):"); scanf("%d",&op);fflush(stdin); }while(op!=1 && op !=2); if(op==1){do{printf("\nDigite a data da alergia:");fflush(stdin); scanf("%d",&usuario.data_alergia); }while(usuario.data_alergia<000000 ); } do{printf("\nDeseja alterar tratamento (1-sim 2 nao)"); scanf("%d",&op);fflush(stdin); }while(op != 1 && op != 2); if(op==1){ printf("\nDigite o tratamento"); fflush(stdin); gets(usuario.tratamento); fflush(stdin); alterou = 1; } do { printf("\nDeseja alterar o cpf (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { do{ printf("\nDigite o cpf: "); fflush(stdin); scanf("%d", &usuario.cpf); fflush(stdin); } while (usuario.cpf >= 99999999999 || usuario.cpf<99999999999); alterou = 1; } if (alterou) {//SE A VARIÁVEL "ALTEROU" FOR NÃO NULA fseek(arq, sizeof(tUsu)*(codigo-1), SEEK_SET); //MOVE O PONTEIRO PARA UMA POSIÇÃO ANTERIOR NO ARQUIVO if (fwrite(&usuario, sizeof(tUsu), 1, arq) ==1) { printf("\nAlteracao salva com sucesso!\n\n"); } else { printf("\nErro na gravacao do arquivo!\n\n"); } fflush(arq); // opcional, pois não vamos ler nada depois... } else { printf("\nNenhuma alteracao realizada!\n\n"); } break; } fread(&usuario, sizeof(tUsu), 1, arq); } if (codigo != usuario.cod) { printf("\nCodigo nao cadastrado!\n\n"); } fclose(arq); system("pause"); } void consultarCodUsu(char *nomeArq){//PROCEDIMENTO PARA CONSULTAR O USUARIO PELO CODIGO int codigo; tUsu usuario; FILE *arq; do{ if (!(arq = fopen(nomeArq, "a+b"))) {//SE NÃO ABRIR O ARQUIVO EXIBE MENSAGEM DE ERRO printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } system("cls"); printf("\n=Digite (0) zero para voltar=\n Digite o codigo: "); scanf("%i", &codigo); fflush(stdin); if (codigo == 0) return; fread(&usuario, sizeof(tUsu), 1, arq); while (!feof(arq)) { if (codigo == usuario.cod) { printf("\n Usuario encontrado!\n\n"); printf("\nCodigo: %d\n", usuario.cod); printf("\nNome: %s\n", usuario.nome); printf("\nIdade: %d\n", usuario.idade); printf("\nSexo: %c\n", usuario.sexo); printf("\nCpf: %d\n", usuario.cpf); printf("\nData alergia: %d\n",usuario.data_alergia); printf("\nTratamento: %s\n",usuario.tratamento); printf("\nAlergia: %s\n",usuario.alergia); system("\n\n\n\npause"); break; } fread(&usuario, sizeof(tUsu), 1, arq); } if (codigo != usuario.cod) { printf("\n\nCodigo nao cadastrado!\n\n"); system("\npause"); } fclose(arq); } while (codigo != usuario.cod); } void consultarNomeUsu(char *nomeArq){//PROCEDIMENTO PARA CONSULTAR O USUARIO PELO NOME char nome[30]; int i = 0; tUsu usuario; FILE *arq; system("cls"); if (!(arq = fopen(nomeArq, "a+b"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } printf("\nDigite o Nome: "); fflush(stdin); gets(nome); fflush(stdin); rewind(arq); //RETORNA O PONTEIRO PARA O INÍCIO DO ARQUIVO fread(&usuario, sizeof(tUsu), 1, arq); if (strstr(usuario.nome, nome))//TESTA SE O NOME OU PARTE DELE REFERE-SE A ALGUM USUARIO printf("\n USUARIOS ENCONTRADOS: \n\n"); while (!feof(arq)) { if (strstr(usuario.nome, nome)) { printf("\nCodigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n\n\n", usuario.cpf); printf("Data da alergia: %d\n",usuario.data_alergia); printf("Tratamento: %s\n",usuario.tratamento); printf("-------------------------------------------------\n\n"); i++; } fread(&usuario, sizeof(tUsu), 1, arq); } if (!i) { printf("\n\nUsuario nao cadastrado!\n\n"); } fclose(arq); system("pause"); } void excluirCodUsu(char *nomeArq){//PROCEDIMENTO PARA EXCLUIR O USUARIO PELO CODIGO int codigo, excluiu = 0; int op; tUsu usuario; FILE *arqOrigem, *arqDestino; system("cls"); do{ if (!(arqOrigem = fopen(nomeArq, "rb"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } if (!(arqDestino = fopen("temp.bin", "wb"))) {//CRIA UM ARQUIVO TEMPORÁRIO printf("\nErro ao abrir o arquivo temporario!\n\n"); fclose(arqOrigem); system("pause"); return; } printf("\n=Digite zero para voltar=\n Digite o codigo do usuario: "); fflush(stdin); scanf("%d", &codigo); fflush(stdin); if (codigo == 0) return; fread(&usuario, sizeof(tUsu), 1, arqOrigem); while (!feof(arqOrigem)) { if (codigo == usuario.cod) { //TESTA SE O CODIGO INFORMADO REFERE-SE A UM USUARIO EXISTENTE printf("\n Usuario encontrado!\n\n"); printf("Codigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n", usuario.cpf); do{ printf("\n\nDeseja excluir o usuario(1 - Sim ou 2 - Nao): ");//CONFIRMA SE REALMENTE QUER EXCLUIR fflush(stdin); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) excluiu = 1; break; } else { fwrite(&usuario, sizeof(tUsu), 1, arqDestino);//GRAVA OS USUARIOS COM CODIGO DIFERENTE DO INFORMADO EM UM NOVO ARQUIVO } fread(&usuario, sizeof(tUsu), 1, arqOrigem); } fclose(arqOrigem);//FECHA O ARQUIVO DE ORIGEM fclose(arqDestino);//FEHA O ARQUIVO DE DESTINO if (excluiu) {//SE A VARIÁVEL "EXCLUIU" RETORNAR UM VALOR NÃO NULO remove(nomeArq);//FUNÇÃO QUE DELETA UM ARQUIVO rename("temp.bin", nomeArq);//FUNÇÃO QUE RENOMEIA UM ARQUIVO printf("\n\nExclusao realizada com sucesso!\n\n"); } else if (codigo != usuario.cod){//SE NÃO FOR ENCONTRADO UM USUARIO COM O CODIGO INFORMADO remove("temp.bin");//DELETA O NOVO ARQUIVO CRIADO (arqDestino) printf("\n\nCodigo nao cadastrado!\n\n"); system("pause"); } else {//SE A VARIÁVEL "EXCLUIU" RETORNAR UM VALOR NULO remove("temp.bin");//DELETA O NOVO ARQUIVO CRIADO (arqDestino) printf("\n\nExclusao nao realizada!\n\n"); system("pause"); } } while (codigo != usuario.cod); } void excluirNomeUsu(char *nomeArq){//PROCEDIMENTO PARA EXCLUIR O USUARIO PELO NOME OU PARTE DO NOME char nome[30]; int excluiu = 0, op, codigoU; tUsu usuario; FILE *arqOrigem, *arqDestino; system("cls"); if (!(arqOrigem = fopen(nomeArq, "rb"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } if (!(arqDestino = fopen("temp.bin", "wb"))) {//CRIA UM ARQUIVO TEMPORÁRIO printf("\nErro ao abrir o arquivo temporario!\n\n"); fclose(arqOrigem); system("pause"); return; } printf("\nDigite o nome do usuario: "); fflush(stdin); gets(nome); fflush(stdin); fread(&usuario, sizeof(tUsu), 1, arqOrigem); while (!feof(arqOrigem)) { if (strstr(usuario.nome, nome)) {//TESTA SE O NOME OU PARTE DELE REFERE-SE A ALGUM USUARIO printf("\n Usuario encontrado!\n\n"); printf("Codigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n", usuario.cpf); printf("Data da alergia: %d\n",usuario.data_alergia); printf("Tratamento: %s\n",usuario.tratamento); do{ printf("\n\nDeseja excluir o usuario(1 - Sim ou 2 - Nao): ");//CONFIRMA SE REALMENTE DESEJA EXCLUIR fflush(stdin); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1){ excluiu = 1; codigoU = usuario.cod; } } else { fwrite(&usuario, sizeof(tUsu), 1, arqDestino);//GRAVA OS USUARIOS COM NOME DIFERENTE DO INFORMADO EM UM NOVO ARQUIVO } fread(&usuario, sizeof(tUsu), 1, arqOrigem); } fclose(arqOrigem); fclose(arqDestino); if (excluiu) {//SE A VARIÁVEL "EXCLUIU" FOR NÃO NULA remove(nomeArq);//REMOVE ARQUIVO DE ORIGEM rename("temp.bin", nomeArq);//RENOMEIA ARQUIVO TEMPORARIO printf("\n\nExclusao realizada com sucesso!\n\n"); } else if (op == 2){//SE NÃO EXCLUIR USUARIO remove("temp.bin");//DELETA ARQUIVO TEMPORARIO printf("\n\nExclusao nao realizada!\n\n"); system("pause"); } else {//SE NÃO FOR ENCONTRADO USUARIO CORRESPONDENTE remove("temp.bin");//DELETA ARQUIVO TEMPORÁRIO printf("\n\nUsuario nao cadastrado!\n\n"); system("pause"); } } void listarUsu(char *nomeArq) {//PROCEDIMENTO PARA LISTAR TODOS OS USUARIOS CADASTRADOS tUsu usuario; FILE *arq; if (!(arq = fopen(nomeArq, "rb"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } system("cls"); printf("\n\nL I S T A G E M\n\n"); fread(&usuario, sizeof(tUsu), 1, arq); while (!feof(arq)) { printf("Codigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n",usuario.cpf); printf("Data da alergia: %d\n",usuario.data_alergia); printf("Tratamento: %s\n",usuario.tratamento); printf("Alergia: %s\n",usuario.alergia); fread(&usuario, sizeof(tUsu), 1, arq); } fclose(arq); system("pause"); } //MENU PRINCIPAL main(){ int op, op1, op2, op3, op4; char resp = 's'; system("color 4f"); printf("********************************************************************************"); printf("** ************************************************************************* ***"); printf("* ======================================================================= **"); printf("** | | ***"); printf("**|| [][][] [][[] [][][] [[] []] [][][] ||***"); printf("**|| [][][] [][[] [] [] [][] [][] [] [] ||***"); printf("**|| [] [] [] [] [] [] [] [][][] ||***"); printf("**|| [][] [] [] [] [] [] [] ||***"); printf("**|| [] [] [] [] [] [] [] ||***"); printf("**|| [][][] [][[] [] [] [] [] [] ||***"); printf("**|| [][][] [][[] [][][] [] [] [] ||***"); printf("** | | ***"); printf("* ======================================================================= **"); printf("** ***********************************************/ ********************** ***"); printf("************************************************/ * / *************************"); printf("************| | | |**************/ * / ************************"); printf("************| * | | * |************/ * / ***********************"); printf("************| | | |**********/ * / **********************"); printf("************| * | | * |********/ * / *********************"); printf("************| | | |******/ * / / ********************"); printf("************| * | | * |****/ * / / * /******************"); printf("************| | | |**/ * / / * /********************"); printf(" BEM VINDO "); printf("\n "); system("pause"); do{ system("color 4f");//ALTERA A COR DE FUNDO E DA FONTE do{ op = -1; system("cls"); printf("\n* = * = MENU PRINCIPAL = * = * = * = * = * = * = * = * = * =*\n\n"); printf("* *\n\n"); printf("* 1 - Menu Usuario *\n\n"); printf("* 0 - Sair *\n\n"); printf("* *\n\n"); printf("* = * = * = * = * = * = * = * = * = * = * = * = * = * = * = *"); //printf("\n* Desenvolvido por: *\n"); printf("\n* Equipe: *\n"); printf("* = * = * = * = * = * = * = * = * = * = * = * = * = * = * = *"); printf("\n\n\nDIGITE A OPCAO : "); fflush(stdin); scanf("%i", &op); fflush(stdin); if (op > 1 || op < 0){ printf("\n\nOpcao invalida!\n\n"); system("pause");
  4. Oi galera, estou desenvolvendo um projeto para faculdade , mas estou com um problema em relação ao cpf deste código . N consigo salvar o valor da váriavel correto alguém ajuda ?E tb preciso de uma função para validar o cpf mas n sei como fazer =\ #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> //definindo as constantes, o local e nome dos arquivos a serem criados #define USUARIOS "Usuarios.bin" #define FILMES "Filmes.bin" #define AVALIACOES "Avaliacoes.bin" //definindo STRUCTS para recebimento dos dados: //USUARIOS typedef struct Usuario{ int cod; char nome[30]; int idade; char sexo; int cpf; int data_alergia; char alergia [30]; char tratamento[30]; }tUsu; //PROCEDIMENTOS E FUNCOES PARA MANIPULAR USUARIOS void cadastraUsu(char *nomeArq){ //PROCEDIMENTO PARA CADASTRAR O USUARIO int i; tUsu usuario; FILE*arq; usuario.cod = 0; system("cls"); do{ //ENQUANTO A BUSCA RETORNAR 0 (ZERO) O PROGRAMA PEDIRÁ UM OUTRO CÓDIGO POIS O CÓDIGO DIGITADO JÁ ESTÁ EM USO printf("\n=Digite 0 (zero) para voltar=\n Digite o codigo: "); scanf("%i", &usuario.cod); fflush(stdin); if (usuario.cod == 0){ return; } if (usuario.cod > 0){//VERIFICA SE O CODIGO É MAIOR QUE ZERO busca(usuario.cod, &i); //VERIFICA SE O CODIGO DIGITADO JÁ ESTÁ EM USO if (i == 0){ printf("\nCodigo ja esta em uso! Escolha outro codigo!\n\n"); } } else{ i = 0; printf("\nCodigo Invalido\n\n"); system("pause"); } } while (i == 0); if (!(arq = fopen(nomeArq, "ab"))){ //TESTA SE O ARQUIVO FOI ENCONTRADO E ABERTO printf("\n\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } printf("\nInforme o nome do paciente: ");//INSERE O NOME DO USUARIO fflush(stdin); gets(usuario.nome); fflush(stdin); do { printf("\nDigite o cpf: "); scanf("%d",&usuario.cpf); } while (usuario.cpf > 99999999999 || usuario.cpf == 00000000000); do { printf("\nDigite a Idade: ");// INSERE A IDADE DO USUARIO scanf("%i",&usuario.idade); fflush(stdin); if (usuario.idade <= 0 || usuario.idade >100){ //TESTA SE A IDADE É VÁLIDA printf("\nIdade Invalida\n"); } } while (usuario.idade <= 0 || usuario.idade >100); do { printf("\nDigite o sexo (M = Masculino ou F = Feminino): ");//INFORMA O SEXO scanf("%c", &usuario.sexo); fflush(stdin); usuario.sexo = tolower(usuario.sexo); //A função tolower converte caracteres em minúsculos if (usuario.sexo != 'm'&& usuario.sexo != 'f'){ //TESTA SE O SEXO É VÁLIDO printf("\nSexo Invalido\n"); } } while (usuario.sexo != 'm'&& usuario.sexo != 'f'); printf("\nDigite a alergia:"); fflush(stdin); gets(usuario.alergia); fflush(stdin); do {printf("\nDigite a data da alergia:");// data da alergia scanf("%d",&usuario.data_alergia);fflush(stdin); }while(usuario.data_alergia <0); printf("\nDigite o tratamento:"); fflush(stdin); gets(usuario.tratamento); fflush(stdin); if (fwrite(&usuario, sizeof(tUsu), 1, arq) == 1){ //VERIFICA SE OS DADOS FORAM GRAVADOS NO ARQUIVO printf("\n\nUsuario Cadastrado com Sucesso!\n\n"); fclose(arq); //FECHA O ARQUIVO system("pause"); } else{ //SE OS DADOS NAO FOREM GRAVADOS EXIBE A MENSAGEM DE ERRO printf("\n\nErro ao Salvar o Usuario no arquivo!\n\n"); fclose(arq); system("pause"); } } int busca(int cod, int *i){ //FUNÇÃO PARA BUSCAR DADOS NO ARQUIVO USUARIOS tUsu usuario; FILE*arq; if (!(arq = fopen(USUARIOS, "a+b"))){ //TESTA SE O ARQUIVO FOI ABERTO printf("\nErro ao abrir o Arquivo!\n\n"); system("pause"); return; } fread(&usuario, sizeof(tUsu), 1, arq);//FAZ A LEITURA DOS DADOS NO ARQUIVO while (!feof(arq)){ //ENQUANTO NÃO CHEGAR AO FIM DO ARQUIVO A BUSCA SERÁ FEITA if (cod == usuario.cod){ *i = 0;//SE O CODIGO DE USUARIO JÁ ESTIVER EM USO RETORNA 0 fclose(arq); return; } fread(&usuario, sizeof(tUsu), 1, arq); } if (cod != usuario.cod){ *i = 1;//SE O CODIGO DO USUARIO NÃO ESTIVER EM USO RETORNA 1 } fclose(arq); } void alterarUsu(char *nomeArq) {//PROCEDIMENTO PARA ALTERAR OS DADOS DO USUARIO int codigo, op, alterou = 0; tUsu usuario; FILE *arq; if (!(arq = fopen(nomeArq, "rb+"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } system("cls"); printf("\n=Digite 0 (zero) para voltar=\n Digite o codigo: "); scanf("%d", &codigo); fflush(stdin); if (codigo == 0) return; fread(&usuario, sizeof(tUsu), 1, arq);//LÊ O ARQUIVO NO ENDEREÇO DA VARIÁVEL USUARIO system("cls"); while (!feof(arq)) {//ATÉ QUE SE CHEGUE AO FIM DO ARQUIVO EXIBIRÁ OS USUARIOS ENCONTRADOS UM POR UM APÓS AS ALTERAÇÕES DO ANTERIOR if (codigo == usuario.cod) { //SE ENCONTRADO O USUARIO: EXIBE NOME, IDADE, SEXO E TELEFONE printf("\nNome: %s\n", usuario.nome); printf("\nIdade: %d\n", usuario.idade); printf("\nSexo: %c\n", usuario.sexo); printf("\nCpf: %d\n",usuario.cpf); printf("\nData da alergia:%d\n",usuario.data_alergia); printf("\nTratamento:%s\n",usuario.tratamento); printf("\nAlergia:%s\n",usuario.alergia); do { printf("\nDeseja alterar o nome (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { printf("\nDigite o nome: "); fflush(stdin); gets(usuario.nome); fflush(stdin); alterou = 1; } do { printf("\nDeseja alterar a idade (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { do{ printf("\nDigite a idade: "); scanf("%d", &usuario.idade); fflush(stdin); } while (usuario.idade<0 || usuario.idade>100); alterou = 1; } do { printf("\nDeseja alterar o sexo (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { do{ printf("\nDigite o sexo: "); scanf("%c", &usuario.sexo); fflush(stdin); } while (usuario.sexo != 'f' && usuario.sexo != 'm'); alterou = 1; } do{ printf("\nDeseja alterar alergia (1-sim 2-nao):"); scanf("%d",&op); fflush(stdin); }while(op!= 1 && op !=2); if(op==1){ printf("\nDigite a alergia:"); fflush(stdin); gets(usuario.alergia); fflush(stdin); alterou = 1; } do{printf("\nDeseja alterar data da alergia (1-sim 2-nao):"); scanf("%d",&op);fflush(stdin); }while(op!=1 && op !=2); if(op==1){do{printf("\nDigite a data da alergia:");fflush(stdin); scanf("%d",&usuario.data_alergia); }while(usuario.data_alergia<000000 ); } do{printf("\nDeseja alterar tratamento (1-sim 2 nao)"); scanf("%d",&op);fflush(stdin); }while(op != 1 && op != 2); if(op==1){ printf("\nDigite o tratamento"); fflush(stdin); gets(usuario.tratamento); fflush(stdin); alterou = 1; } do { printf("\nDeseja alterar o cpf (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { do{ printf("\nDigite o cpf: "); fflush(stdin); scanf("%d", &usuario.cpf); fflush(stdin); } while (usuario.cpf >= 99999999999 || usuario.cpf<99999999999); alterou = 1; } if (alterou) {//SE A VARIÁVEL "ALTEROU" FOR NÃO NULA fseek(arq, sizeof(tUsu)*(codigo-1), SEEK_SET); //MOVE O PONTEIRO PARA UMA POSIÇÃO ANTERIOR NO ARQUIVO if (fwrite(&usuario, sizeof(tUsu), 1, arq) ==1) { printf("\nAlteracao salva com sucesso!\n\n"); } else { printf("\nErro na gravacao do arquivo!\n\n"); } fflush(arq); // opcional, pois não vamos ler nada depois... } else { printf("\nNenhuma alteracao realizada!\n\n"); } break; } fread(&usuario, sizeof(tUsu), 1, arq); } if (codigo != usuario.cod) { printf("\nCodigo nao cadastrado!\n\n"); } fclose(arq); system("pause"); } void consultarCodUsu(char *nomeArq){//PROCEDIMENTO PARA CONSULTAR O USUARIO PELO CODIGO int codigo; tUsu usuario; FILE *arq; do{ if (!(arq = fopen(nomeArq, "a+b"))) {//SE NÃO ABRIR O ARQUIVO EXIBE MENSAGEM DE ERRO printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } system("cls"); printf("\n=Digite (0) zero para voltar=\n Digite o codigo: "); scanf("%i", &codigo); fflush(stdin); if (codigo == 0) return; fread(&usuario, sizeof(tUsu), 1, arq); while (!feof(arq)) { if (codigo == usuario.cod) { printf("\n Usuario encontrado!\n\n"); printf("\nCodigo: %d\n", usuario.cod); printf("\nNome: %s\n", usuario.nome); printf("\nIdade: %d\n", usuario.idade); printf("\nSexo: %c\n", usuario.sexo); printf("\nCpf: %d\n", usuario.cpf); printf("\nData alergia: %d\n",usuario.data_alergia); printf("\nTratamento: %s\n",usuario.tratamento); printf("\nAlergia: %s\n",usuario.alergia); system("\n\n\n\npause"); break; } fread(&usuario, sizeof(tUsu), 1, arq); } if (codigo != usuario.cod) { printf("\n\nCodigo nao cadastrado!\n\n"); system("\npause"); } fclose(arq); } while (codigo != usuario.cod); } void consultarNomeUsu(char *nomeArq){//PROCEDIMENTO PARA CONSULTAR O USUARIO PELO NOME char nome[30]; int i = 0; tUsu usuario; FILE *arq; system("cls"); if (!(arq = fopen(nomeArq, "a+b"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } printf("\nDigite o Nome: "); fflush(stdin); gets(nome); fflush(stdin); rewind(arq); //RETORNA O PONTEIRO PARA O INÍCIO DO ARQUIVO fread(&usuario, sizeof(tUsu), 1, arq); if (strstr(usuario.nome, nome))//TESTA SE O NOME OU PARTE DELE REFERE-SE A ALGUM USUARIO printf("\n USUARIOS ENCONTRADOS: \n\n"); while (!feof(arq)) { if (strstr(usuario.nome, nome)) { printf("\nCodigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n\n\n", usuario.cpf); printf("Data da alergia: %d\n",usuario.data_alergia); printf("Tratamento: %s\n",usuario.tratamento); printf("-------------------------------------------------\n\n"); i++; } fread(&usuario, sizeof(tUsu), 1, arq); } if (!i) { printf("\n\nUsuario nao cadastrado!\n\n"); } fclose(arq); system("pause"); } void excluirCodUsu(char *nomeArq){//PROCEDIMENTO PARA EXCLUIR O USUARIO PELO CODIGO int codigo, excluiu = 0; int op; tUsu usuario; FILE *arqOrigem, *arqDestino; system("cls"); do{ if (!(arqOrigem = fopen(nomeArq, "rb"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } if (!(arqDestino = fopen("temp.bin", "wb"))) {//CRIA UM ARQUIVO TEMPORÁRIO printf("\nErro ao abrir o arquivo temporario!\n\n"); fclose(arqOrigem); system("pause"); return; } printf("\n=Digite zero para voltar=\n Digite o codigo do usuario: "); fflush(stdin); scanf("%d", &codigo); fflush(stdin); if (codigo == 0) return; fread(&usuario, sizeof(tUsu), 1, arqOrigem); while (!feof(arqOrigem)) { if (codigo == usuario.cod) { //TESTA SE O CODIGO INFORMADO REFERE-SE A UM USUARIO EXISTENTE printf("\n Usuario encontrado!\n\n"); printf("Codigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n", usuario.cpf); do{ printf("\n\nDeseja excluir o usuario(1 - Sim ou 2 - Nao): ");//CONFIRMA SE REALMENTE QUER EXCLUIR fflush(stdin); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) excluiu = 1; break; } else { fwrite(&usuario, sizeof(tUsu), 1, arqDestino);//GRAVA OS USUARIOS COM CODIGO DIFERENTE DO INFORMADO EM UM NOVO ARQUIVO } fread(&usuario, sizeof(tUsu), 1, arqOrigem); } fclose(arqOrigem);//FECHA O ARQUIVO DE ORIGEM fclose(arqDestino);//FEHA O ARQUIVO DE DESTINO if (excluiu) {//SE A VARIÁVEL "EXCLUIU" RETORNAR UM VALOR NÃO NULO remove(nomeArq);//FUNÇÃO QUE DELETA UM ARQUIVO rename("temp.bin", nomeArq);//FUNÇÃO QUE RENOMEIA UM ARQUIVO printf("\n\nExclusao realizada com sucesso!\n\n"); } else if (codigo != usuario.cod){//SE NÃO FOR ENCONTRADO UM USUARIO COM O CODIGO INFORMADO remove("temp.bin");//DELETA O NOVO ARQUIVO CRIADO (arqDestino) printf("\n\nCodigo nao cadastrado!\n\n"); system("pause"); } else {//SE A VARIÁVEL "EXCLUIU" RETORNAR UM VALOR NULO remove("temp.bin");//DELETA O NOVO ARQUIVO CRIADO (arqDestino) printf("\n\nExclusao nao realizada!\n\n"); system("pause"); } } while (codigo != usuario.cod); } void excluirNomeUsu(char *nomeArq){//PROCEDIMENTO PARA EXCLUIR O USUARIO PELO NOME OU PARTE DO NOME char nome[30]; int excluiu = 0, op, codigoU; tUsu usuario; FILE *arqOrigem, *arqDestino; system("cls"); if (!(arqOrigem = fopen(nomeArq, "rb"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } if (!(arqDestino = fopen("temp.bin", "wb"))) {//CRIA UM ARQUIVO TEMPORÁRIO printf("\nErro ao abrir o arquivo temporario!\n\n"); fclose(arqOrigem); system("pause"); return; } printf("\nDigite o nome do usuario: "); fflush(stdin); gets(nome); fflush(stdin); fread(&usuario, sizeof(tUsu), 1, arqOrigem); while (!feof(arqOrigem)) { if (strstr(usuario.nome, nome)) {//TESTA SE O NOME OU PARTE DELE REFERE-SE A ALGUM USUARIO printf("\n Usuario encontrado!\n\n"); printf("Codigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n", usuario.cpf); printf("Data da alergia: %d\n",usuario.data_alergia); printf("Tratamento: %s\n",usuario.tratamento); do{ printf("\n\nDeseja excluir o usuario(1 - Sim ou 2 - Nao): ");//CONFIRMA SE REALMENTE DESEJA EXCLUIR fflush(stdin); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1){ excluiu = 1; codigoU = usuario.cod; } } else { fwrite(&usuario, sizeof(tUsu), 1, arqDestino);//GRAVA OS USUARIOS COM NOME DIFERENTE DO INFORMADO EM UM NOVO ARQUIVO } fread(&usuario, sizeof(tUsu), 1, arqOrigem); } fclose(arqOrigem); fclose(arqDestino); if (excluiu) {//SE A VARIÁVEL "EXCLUIU" FOR NÃO NULA remove(nomeArq);//REMOVE ARQUIVO DE ORIGEM rename("temp.bin", nomeArq);//RENOMEIA ARQUIVO TEMPORARIO printf("\n\nExclusao realizada com sucesso!\n\n"); } else if (op == 2){//SE NÃO EXCLUIR USUARIO remove("temp.bin");//DELETA ARQUIVO TEMPORARIO printf("\n\nExclusao nao realizada!\n\n"); system("pause"); } else {//SE NÃO FOR ENCONTRADO USUARIO CORRESPONDENTE remove("temp.bin");//DELETA ARQUIVO TEMPORÁRIO printf("\n\nUsuario nao cadastrado!\n\n"); system("pause"); } } void listarUsu(char *nomeArq) {//PROCEDIMENTO PARA LISTAR TODOS OS USUARIOS CADASTRADOS tUsu usuario; FILE *arq; if (!(arq = fopen(nomeArq, "rb"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } system("cls"); printf("\n\nL I S T A G E M\n\n"); fread(&usuario, sizeof(tUsu), 1, arq); while (!feof(arq)) { printf("Codigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n",usuario.cpf); printf("Data da alergia: %d\n",usuario.data_alergia); printf("Tratamento: %s\n",usuario.tratamento); printf("Alergia: %s\n",usuario.alergia); fread(&usuario, sizeof(tUsu), 1, arq); } fclose(arq); system("pause"); } //MENU PRINCIPAL main(){ int op, op1, op2, op3, op4; char resp = 's'; system("color 4f"); printf("********************************************************************************"); printf("** ************************************************************************* ***"); printf("* ======================================================================= **"); printf("** | | ***"); printf("**|| [][][] [][[] [][][] [[] []] [][][] ||***"); printf("**|| [][][] [][[] [] [] [][] [][] [] [] ||***"); printf("**|| [] [] [] [] [] [] [] [][][] ||***"); printf("**|| [][] [] [] [] [] [] [] ||***"); printf("**|| [] [] [] [] [] [] [] ||***"); printf("**|| [][][] [][[] [] [] [] [] [] ||***"); printf("**|| [][][] [][[] [][][] [] [] [] ||***"); printf("** | | ***"); printf("* ======================================================================= **"); printf("** ***********************************************/ ********************** ***"); printf("************************************************/ * / *************************"); printf("************| | | |**************/ * / ************************"); printf("************| * | | * |************/ * / ***********************"); printf("************| | | |**********/ * / **********************"); printf("************| * | | * |********/ * / *********************"); printf("************| | | |******/ * / / ********************"); printf("************| * | | * |****/ * / / * /******************"); printf("************| | | |**/ * / / * /********************"); printf(" BEM VINDO "); printf("\n "); system("pause"); do{ system("color 4f");//ALTERA A COR DE FUNDO E DA FONTE do{ op = -1; system("cls"); printf("\n* = * = MENU PRINCIPAL = * = * = * = * = * = * = * = * = * =*\n\n"); printf("* *\n\n"); printf("* 1 - Menu Usuario *\n\n"); printf("* 0 - Sair *\n\n"); printf("* *\n\n"); printf("* = * = * = * = * = * = * = * = * = * = * = * = * = * = * = *"); //printf("\n* Desenvolvido por: *\n"); printf("\n* Equipe: *\n"); printf("* = * = * = * = * = * = * = * = * = * = * = * = * = * = * = *"); printf("\n\n\nDIGITE A OPCAO : "); fflush(stdin); scanf("%i", &op); fflush(stdin); if (op > 1 || op < 0){ printf("\n\nOpcao invalida!\n\n"); system("pause");
  5. Oi galera, estou desenvolvendo um projeto para faculdade , mas estou com um problema em relação ao cpf deste código . N consigo salvar o valor da váriavel correto alguém ajuda ?E tb preciso de uma função para validar o cpf mas n sei como fazer =\ #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> //definindo as constantes, o local e nome dos arquivos a serem criados #define USUARIOS "Usuarios.bin" #define FILMES "Filmes.bin" #define AVALIACOES "Avaliacoes.bin" //definindo STRUCTS para recebimento dos dados: //USUARIOS typedef struct Usuario{ int cod; char nome[30]; int idade; char sexo; int cpf; int data_alergia; char alergia [30]; char tratamento[30]; }tUsu; //PROCEDIMENTOS E FUNCOES PARA MANIPULAR USUARIOS void cadastraUsu(char *nomeArq){ //PROCEDIMENTO PARA CADASTRAR O USUARIO int i; tUsu usuario; FILE*arq; usuario.cod = 0; system("cls"); do{ //ENQUANTO A BUSCA RETORNAR 0 (ZERO) O PROGRAMA PEDIRÁ UM OUTRO CÓDIGO POIS O CÓDIGO DIGITADO JÁ ESTÁ EM USO printf("\n=Digite 0 (zero) para voltar=\n Digite o codigo: "); scanf("%i", &usuario.cod); fflush(stdin); if (usuario.cod == 0){ return; } if (usuario.cod > 0){//VERIFICA SE O CODIGO É MAIOR QUE ZERO busca(usuario.cod, &i); //VERIFICA SE O CODIGO DIGITADO JÁ ESTÁ EM USO if (i == 0){ printf("\nCodigo ja esta em uso! Escolha outro codigo!\n\n"); } } else{ i = 0; printf("\nCodigo Invalido\n\n"); system("pause"); } } while (i == 0); if (!(arq = fopen(nomeArq, "ab"))){ //TESTA SE O ARQUIVO FOI ENCONTRADO E ABERTO printf("\n\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } printf("\nInforme o nome do paciente: ");//INSERE O NOME DO USUARIO fflush(stdin); gets(usuario.nome); fflush(stdin); do { printf("\nDigite o cpf: "); scanf("%d",&usuario.cpf); } while (usuario.cpf > 99999999999 || usuario.cpf == 00000000000); do { printf("\nDigite a Idade: ");// INSERE A IDADE DO USUARIO scanf("%i",&usuario.idade); fflush(stdin); if (usuario.idade <= 0 || usuario.idade >100){ //TESTA SE A IDADE É VÁLIDA printf("\nIdade Invalida\n"); } } while (usuario.idade <= 0 || usuario.idade >100); do { printf("\nDigite o sexo (M = Masculino ou F = Feminino): ");//INFORMA O SEXO scanf("%c", &usuario.sexo); fflush(stdin); usuario.sexo = tolower(usuario.sexo); //A função tolower converte caracteres em minúsculos if (usuario.sexo != 'm'&& usuario.sexo != 'f'){ //TESTA SE O SEXO É VÁLIDO printf("\nSexo Invalido\n"); } } while (usuario.sexo != 'm'&& usuario.sexo != 'f'); printf("\nDigite a alergia:"); fflush(stdin); gets(usuario.alergia); fflush(stdin); do {printf("\nDigite a data da alergia:");// data da alergia scanf("%d",&usuario.data_alergia);fflush(stdin); }while(usuario.data_alergia <0); printf("\nDigite o tratamento:"); fflush(stdin); gets(usuario.tratamento); fflush(stdin); if (fwrite(&usuario, sizeof(tUsu), 1, arq) == 1){ //VERIFICA SE OS DADOS FORAM GRAVADOS NO ARQUIVO printf("\n\nUsuario Cadastrado com Sucesso!\n\n"); fclose(arq); //FECHA O ARQUIVO system("pause"); } else{ //SE OS DADOS NAO FOREM GRAVADOS EXIBE A MENSAGEM DE ERRO printf("\n\nErro ao Salvar o Usuario no arquivo!\n\n"); fclose(arq); system("pause"); } } int busca(int cod, int *i){ //FUNÇÃO PARA BUSCAR DADOS NO ARQUIVO USUARIOS tUsu usuario; FILE*arq; if (!(arq = fopen(USUARIOS, "a+b"))){ //TESTA SE O ARQUIVO FOI ABERTO printf("\nErro ao abrir o Arquivo!\n\n"); system("pause"); return; } fread(&usuario, sizeof(tUsu), 1, arq);//FAZ A LEITURA DOS DADOS NO ARQUIVO while (!feof(arq)){ //ENQUANTO NÃO CHEGAR AO FIM DO ARQUIVO A BUSCA SERÁ FEITA if (cod == usuario.cod){ *i = 0;//SE O CODIGO DE USUARIO JÁ ESTIVER EM USO RETORNA 0 fclose(arq); return; } fread(&usuario, sizeof(tUsu), 1, arq); } if (cod != usuario.cod){ *i = 1;//SE O CODIGO DO USUARIO NÃO ESTIVER EM USO RETORNA 1 } fclose(arq); } void alterarUsu(char *nomeArq) {//PROCEDIMENTO PARA ALTERAR OS DADOS DO USUARIO int codigo, op, alterou = 0; tUsu usuario; FILE *arq; if (!(arq = fopen(nomeArq, "rb+"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } system("cls"); printf("\n=Digite 0 (zero) para voltar=\n Digite o codigo: "); scanf("%d", &codigo); fflush(stdin); if (codigo == 0) return; fread(&usuario, sizeof(tUsu), 1, arq);//LÊ O ARQUIVO NO ENDEREÇO DA VARIÁVEL USUARIO system("cls"); while (!feof(arq)) {//ATÉ QUE SE CHEGUE AO FIM DO ARQUIVO EXIBIRÁ OS USUARIOS ENCONTRADOS UM POR UM APÓS AS ALTERAÇÕES DO ANTERIOR if (codigo == usuario.cod) { //SE ENCONTRADO O USUARIO: EXIBE NOME, IDADE, SEXO E TELEFONE printf("\nNome: %s\n", usuario.nome); printf("\nIdade: %d\n", usuario.idade); printf("\nSexo: %c\n", usuario.sexo); printf("\nCpf: %d\n",usuario.cpf); printf("\nData da alergia:%d\n",usuario.data_alergia); printf("\nTratamento:%s\n",usuario.tratamento); printf("\nAlergia:%s\n",usuario.alergia); do { printf("\nDeseja alterar o nome (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { printf("\nDigite o nome: "); fflush(stdin); gets(usuario.nome); fflush(stdin); alterou = 1; } do { printf("\nDeseja alterar a idade (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { do{ printf("\nDigite a idade: "); scanf("%d", &usuario.idade); fflush(stdin); } while (usuario.idade<0 || usuario.idade>100); alterou = 1; } do { printf("\nDeseja alterar o sexo (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { do{ printf("\nDigite o sexo: "); scanf("%c", &usuario.sexo); fflush(stdin); } while (usuario.sexo != 'f' && usuario.sexo != 'm'); alterou = 1; } do{ printf("\nDeseja alterar alergia (1-sim 2-nao):"); scanf("%d",&op); fflush(stdin); }while(op!= 1 && op !=2); if(op==1){ printf("\nDigite a alergia:"); fflush(stdin); gets(usuario.alergia); fflush(stdin); alterou = 1; } do{printf("\nDeseja alterar data da alergia (1-sim 2-nao):"); scanf("%d",&op);fflush(stdin); }while(op!=1 && op !=2); if(op==1){do{printf("\nDigite a data da alergia:");fflush(stdin); scanf("%d",&usuario.data_alergia); }while(usuario.data_alergia<000000 ); } do{printf("\nDeseja alterar tratamento (1-sim 2 nao)"); scanf("%d",&op);fflush(stdin); }while(op != 1 && op != 2); if(op==1){ printf("\nDigite o tratamento"); fflush(stdin); gets(usuario.tratamento); fflush(stdin); alterou = 1; } do { printf("\nDeseja alterar o cpf (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { do{ printf("\nDigite o cpf: "); fflush(stdin); scanf("%d", &usuario.cpf); fflush(stdin); } while (usuario.cpf >= 99999999999 || usuario.cpf<99999999999); alterou = 1; } if (alterou) {//SE A VARIÁVEL "ALTEROU" FOR NÃO NULA fseek(arq, sizeof(tUsu)*(codigo-1), SEEK_SET); //MOVE O PONTEIRO PARA UMA POSIÇÃO ANTERIOR NO ARQUIVO if (fwrite(&usuario, sizeof(tUsu), 1, arq) ==1) { printf("\nAlteracao salva com sucesso!\n\n"); } else { printf("\nErro na gravacao do arquivo!\n\n"); } fflush(arq); // opcional, pois não vamos ler nada depois... } else { printf("\nNenhuma alteracao realizada!\n\n"); } break; } fread(&usuario, sizeof(tUsu), 1, arq); } if (codigo != usuario.cod) { printf("\nCodigo nao cadastrado!\n\n"); } fclose(arq); system("pause"); } void consultarCodUsu(char *nomeArq){//PROCEDIMENTO PARA CONSULTAR O USUARIO PELO CODIGO int codigo; tUsu usuario; FILE *arq; do{ if (!(arq = fopen(nomeArq, "a+b"))) {//SE NÃO ABRIR O ARQUIVO EXIBE MENSAGEM DE ERRO printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } system("cls"); printf("\n=Digite (0) zero para voltar=\n Digite o codigo: "); scanf("%i", &codigo); fflush(stdin); if (codigo == 0) return; fread(&usuario, sizeof(tUsu), 1, arq); while (!feof(arq)) { if (codigo == usuario.cod) { printf("\n Usuario encontrado!\n\n"); printf("\nCodigo: %d\n", usuario.cod); printf("\nNome: %s\n", usuario.nome); printf("\nIdade: %d\n", usuario.idade); printf("\nSexo: %c\n", usuario.sexo); printf("\nCpf: %d\n", usuario.cpf); printf("\nData alergia: %d\n",usuario.data_alergia); printf("\nTratamento: %s\n",usuario.tratamento); printf("\nAlergia: %s\n",usuario.alergia); system("\n\n\n\npause"); break; } fread(&usuario, sizeof(tUsu), 1, arq); } if (codigo != usuario.cod) { printf("\n\nCodigo nao cadastrado!\n\n"); system("\npause"); } fclose(arq); } while (codigo != usuario.cod); } void consultarNomeUsu(char *nomeArq){//PROCEDIMENTO PARA CONSULTAR O USUARIO PELO NOME char nome[30]; int i = 0; tUsu usuario; FILE *arq; system("cls"); if (!(arq = fopen(nomeArq, "a+b"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } printf("\nDigite o Nome: "); fflush(stdin); gets(nome); fflush(stdin); rewind(arq); //RETORNA O PONTEIRO PARA O INÍCIO DO ARQUIVO fread(&usuario, sizeof(tUsu), 1, arq); if (strstr(usuario.nome, nome))//TESTA SE O NOME OU PARTE DELE REFERE-SE A ALGUM USUARIO printf("\n USUARIOS ENCONTRADOS: \n\n"); while (!feof(arq)) { if (strstr(usuario.nome, nome)) { printf("\nCodigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n\n\n", usuario.cpf); printf("Data da alergia: %d\n",usuario.data_alergia); printf("Tratamento: %s\n",usuario.tratamento); printf("-------------------------------------------------\n\n"); i++; } fread(&usuario, sizeof(tUsu), 1, arq); } if (!i) { printf("\n\nUsuario nao cadastrado!\n\n"); } fclose(arq); system("pause"); } void excluirCodUsu(char *nomeArq){//PROCEDIMENTO PARA EXCLUIR O USUARIO PELO CODIGO int codigo, excluiu = 0; int op; tUsu usuario; FILE *arqOrigem, *arqDestino; system("cls"); do{ if (!(arqOrigem = fopen(nomeArq, "rb"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } if (!(arqDestino = fopen("temp.bin", "wb"))) {//CRIA UM ARQUIVO TEMPORÁRIO printf("\nErro ao abrir o arquivo temporario!\n\n"); fclose(arqOrigem); system("pause"); return; } printf("\n=Digite zero para voltar=\n Digite o codigo do usuario: "); fflush(stdin); scanf("%d", &codigo); fflush(stdin); if (codigo == 0) return; fread(&usuario, sizeof(tUsu), 1, arqOrigem); while (!feof(arqOrigem)) { if (codigo == usuario.cod) { //TESTA SE O CODIGO INFORMADO REFERE-SE A UM USUARIO EXISTENTE printf("\n Usuario encontrado!\n\n"); printf("Codigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n", usuario.cpf); do{ printf("\n\nDeseja excluir o usuario(1 - Sim ou 2 - Nao): ");//CONFIRMA SE REALMENTE QUER EXCLUIR fflush(stdin); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) excluiu = 1; break; } else { fwrite(&usuario, sizeof(tUsu), 1, arqDestino);//GRAVA OS USUARIOS COM CODIGO DIFERENTE DO INFORMADO EM UM NOVO ARQUIVO } fread(&usuario, sizeof(tUsu), 1, arqOrigem); } fclose(arqOrigem);//FECHA O ARQUIVO DE ORIGEM fclose(arqDestino);//FEHA O ARQUIVO DE DESTINO if (excluiu) {//SE A VARIÁVEL "EXCLUIU" RETORNAR UM VALOR NÃO NULO remove(nomeArq);//FUNÇÃO QUE DELETA UM ARQUIVO rename("temp.bin", nomeArq);//FUNÇÃO QUE RENOMEIA UM ARQUIVO printf("\n\nExclusao realizada com sucesso!\n\n"); } else if (codigo != usuario.cod){//SE NÃO FOR ENCONTRADO UM USUARIO COM O CODIGO INFORMADO remove("temp.bin");//DELETA O NOVO ARQUIVO CRIADO (arqDestino) printf("\n\nCodigo nao cadastrado!\n\n"); system("pause"); } else {//SE A VARIÁVEL "EXCLUIU" RETORNAR UM VALOR NULO remove("temp.bin");//DELETA O NOVO ARQUIVO CRIADO (arqDestino) printf("\n\nExclusao nao realizada!\n\n"); system("pause"); } } while (codigo != usuario.cod); } void excluirNomeUsu(char *nomeArq){//PROCEDIMENTO PARA EXCLUIR O USUARIO PELO NOME OU PARTE DO NOME char nome[30]; int excluiu = 0, op, codigoU; tUsu usuario; FILE *arqOrigem, *arqDestino; system("cls"); if (!(arqOrigem = fopen(nomeArq, "rb"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } if (!(arqDestino = fopen("temp.bin", "wb"))) {//CRIA UM ARQUIVO TEMPORÁRIO printf("\nErro ao abrir o arquivo temporario!\n\n"); fclose(arqOrigem); system("pause"); return; } printf("\nDigite o nome do usuario: "); fflush(stdin); gets(nome); fflush(stdin); fread(&usuario, sizeof(tUsu), 1, arqOrigem); while (!feof(arqOrigem)) { if (strstr(usuario.nome, nome)) {//TESTA SE O NOME OU PARTE DELE REFERE-SE A ALGUM USUARIO printf("\n Usuario encontrado!\n\n"); printf("Codigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n", usuario.cpf); printf("Data da alergia: %d\n",usuario.data_alergia); printf("Tratamento: %s\n",usuario.tratamento); do{ printf("\n\nDeseja excluir o usuario(1 - Sim ou 2 - Nao): ");//CONFIRMA SE REALMENTE DESEJA EXCLUIR fflush(stdin); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1){ excluiu = 1; codigoU = usuario.cod; } } else { fwrite(&usuario, sizeof(tUsu), 1, arqDestino);//GRAVA OS USUARIOS COM NOME DIFERENTE DO INFORMADO EM UM NOVO ARQUIVO } fread(&usuario, sizeof(tUsu), 1, arqOrigem); } fclose(arqOrigem); fclose(arqDestino); if (excluiu) {//SE A VARIÁVEL "EXCLUIU" FOR NÃO NULA remove(nomeArq);//REMOVE ARQUIVO DE ORIGEM rename("temp.bin", nomeArq);//RENOMEIA ARQUIVO TEMPORARIO printf("\n\nExclusao realizada com sucesso!\n\n"); } else if (op == 2){//SE NÃO EXCLUIR USUARIO remove("temp.bin");//DELETA ARQUIVO TEMPORARIO printf("\n\nExclusao nao realizada!\n\n"); system("pause"); } else {//SE NÃO FOR ENCONTRADO USUARIO CORRESPONDENTE remove("temp.bin");//DELETA ARQUIVO TEMPORÁRIO printf("\n\nUsuario nao cadastrado!\n\n"); system("pause"); } } void listarUsu(char *nomeArq) {//PROCEDIMENTO PARA LISTAR TODOS OS USUARIOS CADASTRADOS tUsu usuario; FILE *arq; if (!(arq = fopen(nomeArq, "rb"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } system("cls"); printf("\n\nL I S T A G E M\n\n"); fread(&usuario, sizeof(tUsu), 1, arq); while (!feof(arq)) { printf("Codigo: %d\n", usuario.cod); printf("Nome: %s\n", usuario.nome); printf("Idade: %d\n", usuario.idade); printf("Sexo: %c\n", usuario.sexo); printf("Cpf: %d\n",usuario.cpf); printf("Data da alergia: %d\n",usuario.data_alergia); printf("Tratamento: %s\n",usuario.tratamento); printf("Alergia: %s\n",usuario.alergia); fread(&usuario, sizeof(tUsu), 1, arq); } fclose(arq); system("pause"); } //MENU PRINCIPAL main(){ int op, op1, op2, op3, op4; char resp = 's'; system("color 4f"); printf("********************************************************************************"); printf("** ************************************************************************* ***"); printf("* ======================================================================= **"); printf("** | | ***"); printf("**|| [][][] [][[] [][][] [[] []] [][][] ||***"); printf("**|| [][][] [][[] [] [] [][] [][] [] [] ||***"); printf("**|| [] [] [] [] [] [] [] [][][] ||***"); printf("**|| [][] [] [] [] [] [] [] ||***"); printf("**|| [] [] [] [] [] [] [] ||***"); printf("**|| [][][] [][[] [] [] [] [] [] ||***"); printf("**|| [][][] [][[] [][][] [] [] [] ||***"); printf("** | | ***"); printf("* ======================================================================= **"); printf("** ***********************************************/ ********************** ***"); printf("************************************************/ * / *************************"); printf("************| | | |**************/ * / ************************"); printf("************| * | | * |************/ * / ***********************"); printf("************| | | |**********/ * / **********************"); printf("************| * | | * |********/ * / *********************"); printf("************| | | |******/ * / / ********************"); printf("************| * | | * |****/ * / / * /******************"); printf("************| | | |**/ * / / * /********************"); printf(" BEM VINDO "); printf("\n "); system("pause"); do{ system("color 4f");//ALTERA A COR DE FUNDO E DA FONTE do{ op = -1; system("cls"); printf("\n* = * = MENU PRINCIPAL = * = * = * = * = * = * = * = * = * =*\n\n"); printf("* *\n\n"); printf("* 1 - Menu Usuario *\n\n"); printf("* 0 - Sair *\n\n"); printf("* *\n\n"); printf("* = * = * = * = * = * = * = * = * = * = * = * = * = * = * = *"); //printf("\n* Desenvolvido por: *\n"); printf("\n* Equipe: *\n"); printf("* = * = * = * = * = * = * = * = * = * = * = * = * = * = * = *"); printf("\n\n\nDIGITE A OPCAO : "); fflush(stdin); scanf("%i", &op); fflush(stdin); if (op > 1 || op < 0){ printf("\n\nOpcao invalida!\n\n"); system("pause");
  6. Galera, tô fazendo um trabalhinho e meu código tá dando um erro "466 2 [Error] expected declaration or statement at end of input" E eu n consigo resolver me ajudem !!! #include <stdio.h> #include <stdlib.h> #define PACIENTES "pacientes.bin" //definindo as constantes, o local e nome dos arquivos a serem criados #define _CRT_SECURE_NO_WARNINGS #include<string.h> //definindo STRUCTS para recebimento dos dados: typedef struct paciente { char nome[50]; int idade; int cpf; char endereco[100]; int cod; char alergia[20]; int data_alergia; char tratamento[100]; }usuario; //PROCEDIMENTOS E FUNCOES PARA MANIPULAR PACIENTES void cadastrapaciente(char *nomeArq) { int i; usuario paciente; FILE*arq; paciente.cod=0; system("cls"); do{ printf("\n=digite o codigo: \n=digite zero para voltar: ");//ENQUANTO A BUSCA RETORNAR 0 (ZERO) O PROGRAMA PEDIRÁ UM OUTRO CPF POIS O CÓDIGO DIGITADO JÁ ESTÁ EM USO scanf("i",&paciente.cod); fflush(stdin); //limpar o buffer do teclado if (paciente.cod== 0){ return; } if(paciente.cod>0){ busca(paciente.cod, &i); //verifica se o codigo já está em uso if(i==0) { printf("\nCodigo ja esta em uso!"); } else{ i = 0; printf("\nCodigo Invalido\n\n"); system("pause"); } } }while (i == 0); if (!(arq = fopen(nomeArq, "ab"))){ //TESTA SE O ARQUIVO FOI ENCONTRADO E ABERTO printf("\n\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } printf("\nInforme o nome do paciente: ");//INSERE O NOME DO PACIENTE fflush(stdin); gets(paciente.nome); fflush(stdin); do { printf("\nDigite a Idade: ");// INSERE A IDADE PACIENTE scanf("%i", &paciente.idade); fflush(stdin); if (paciente.idade <= 0 || paciente.idade >100){ //TESTA SE A IDADE É VÁLIDA printf("\nIdade Invalida\n"); } } while (paciente.idade <= 0 || paciente.idade >100); do { printf("\nDigite o cpf: "); scanf("%i", &paciente.cpf); if (paciente.cpf> 99999999999 || paciente.cpf == 00000000000){ //TESTA SE O TELEFONE É VÁLIDO printf("\nCpf Invalido\n"); } } while (paciente.cpf > 99999999999 || paciente.cpf == 00000000000); printf("\nInforme o endereco do paciente: ");//endereço fflush(stdin); gets(paciente.endereco); fflush(stdin); printf("\nDigite a alergia do paciente:"); fflush(stdin); gets(paciente.alergia);fflush(stdin); do{ printf("\nData da alergia"); scanf("%i",&paciente.data_alergia); if(paciente.data_alergia>000000 || paciente.data_alergia<000000); { printf("\nData invalida\n"); } /*while(paciente.data_alergia>000000 || paciente.data_alergia<000000) { }*/ }while(1); // Falta definir a condição if (fwrite(&paciente, sizeof(usuario), 1, arq) == 1){ //VERIFICA SE OS DADOS FORAM GRAVADOS NO ARQUIVO printf("\n\n Paciente gravado com Sucesso!\n\n"); fclose(arq); //FECHA O ARQUIVO system("pause"); } else{ //SE OS DADOS NAO FOREM GRAVADOS EXIBE A MENSAGEM DE ERRO printf("\n\nErro ao Salvar o Usuario no arquivo!\n\n"); fclose(arq); system("pause"); } } int busca(int cod, int *i){ //FUNÇÃO PARA BUSCAR DADOS NO ARQUIVO USUARIOS usuario paciente; FILE*arq; if (!(arq = fopen(PACIENTES, "a+b"))){ //TESTA SE O ARQUIVO FOI ABERTO printf("\nErro ao abrir o Arquivo!\n\n"); system("pause"); return; } fread(&paciente, sizeof(usuario), 1, arq);//FAZ A LEITURA DOS DADOS NO ARQUIVO while (!feof(arq)){ //ENQUANTO NÃO CHEGAR AO FIM DO ARQUIVO A BUSCA SERÁ FEITA if (cod == paciente.cod){ *i = 0;//SE O CODIGO DE USUARIO JÁ ESTIVER EM USO RETORNA 0 fclose(arq); return; } fread(&paciente, sizeof(usuario), 1, arq); } if (cod != paciente.cod){ *i = 1;//SE O CODIGO DO paciente NÃO ESTIVER EM USO RETORNA 1 } fclose(arq); } void alterarpaciente(char *nomeArq) {//PROCEDIMENTO PARA ALTERAR OS DADOS DO USUARIO int cod, op, alterou = 0; usuario paciente; FILE *arq; if (!(arq = fopen(nomeArq, "rb+"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } system("cls"); printf("\n=Digite 0 (zero) para voltar=\n Digite o codigo: "); scanf("%d", &cod); fflush(stdin); if (cod == 0) return; fread(&paciente, sizeof(usuario), 1, arq);//LÊ O ARQUIVO NO ENDEREÇO DA VARIÁVEL paciente system("cls"); while (!feof(arq)) {//ATÉ QUE SE CHEGUE AO FIM DO ARQUIVO EXIBIRÁ OS USUARIOS ENCONTRADOS UM POR UM APÓS AS ALTERAÇÕES DO ANTERIOR if (cod == paciente.cod) { //SE ENCONTRADO O USUARIO: EXIBE NOME, IDADE, SEXO E TELEFONE printf("\nNome: %s\n", paciente.nome); printf("\nIdade: %d\n", paciente.idade); printf("\nAlergia: %c\n", paciente.alergia); printf("\nCpf: %d\n", paciente.cpf); printf("\nEndereco:%c\n",paciente.endereco); printf("\nTratamento:%c\n",paciente.tratamento); printf("\nData da alergia:%d\n",paciente.data_alergia); do { printf("\nDeseja alterar o nome (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { printf("\nDigite o nome: "); fflush(stdin); gets(paciente.nome); fflush(stdin); alterou = 1; } do { printf("\nDeseja alterar a idade (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { do{ printf("\nDigite a idade: "); scanf("%d", &paciente.idade); fflush(stdin); } while (paciente.idade<0 || paciente.idade>100); alterou = 1; } do { printf("\nDeseja alterar a alergia (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { do{ printf("\nDigite a alergia: "); scanf("%c", &paciente.alergia); fflush(stdin); } while (paciente.alergia != 'f' && paciente.alergia != 'm'); alterou = 1; } do { printf("\nDeseja alterar o cpf (1-sim 2-nao): "); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) { do{ printf("\nDigite o cpf: "); fflush(stdin); scanf("%d", &paciente.cpf); fflush(stdin); } while (paciente.cpf >= 99999999999 || paciente.cpf<9999999999); alterou = 1; } if (alterou) {//SE A VARIÁVEL "ALTEROU" FOR NÃO NULA fseek(arq, sizeof(usuario)*(cod-1), SEEK_SET); //MOVE O PONTEIRO PARA UMA POSIÇÃO ANTERIOR NO ARQUIVO if (fwrite(&paciente, sizeof(usuario), 1, arq) ==1) { printf("\nAlteracao salva com sucesso!\n\n"); } else { printf("\nErro na gravacao do arquivo!\n\n"); } fflush(arq); // opcional, pois não vamos ler nada depois... } else { printf("\nNenhuma alteracao realizada!\n\n"); } break; fread(&paciente, sizeof(usuario), 1, arq); } if (cod!= paciente.cod) { printf("\nCodigo nao cadastrado!\n\n"); } fclose(arq); system("pause"); void consultarNomepaciente(char *nomeArq){//PROCEDIMENTO PARA CONSULTAR O USUARIO PELO NOME char nome[30]; int i = 0; usuario paciente; FILE *arq; system("cls"); if (!(arq = fopen(nomeArq, "a+b"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } printf("\nDigite o Nome: "); fflush(stdin); gets(nome); fflush(stdin); rewind(arq); //RETORNA O PONTEIRO PARA O INÍCIO DO ARQUIVO fread(&paciente, sizeof(usuario), 1, arq); if (strstr(paciente.nome, nome))//TESTA SE O NOME OU PARTE DELE REFERE-SE A ALGUM USUARIO printf("\n Nomes ENCONTRADOS: \n\n"); while (!feof(arq)) { if (strstr(paciente.nome, nome)) { printf("\nCodigo: %d\n", paciente.cod); printf("Nome: %s\n", paciente.nome); printf("Idade: %d\n", paciente.idade); printf("Sexo: %c\n", paciente.alergia); printf("Telefone: %d\n\n\n", paciente.cpf); printf("Enderoco:%c\n",paciente.endereco); printf("Alergia:%c",paciente.alergia); printf("Data da alergia:%d\n",paciente.data_alergia); printf("Tratamento:%c\n",paciente.tratamento); } fread(&paciente, sizeof(usuario), 1, arq); } if (!i) { printf("\n\npaciente nao cadastrado!\n\n"); } fclose(arq); system("pause"); } void excluirCodpaciente(char *nomeArq){//PROCEDIMENTO PARA EXCLUIR O USUARIO PELO CODIGO int codigo, excluiu = 0; int op; usuario paciente; FILE *arqOrigem, *arqDestino; system("cls"); do{ if (!(arqOrigem = fopen(nomeArq, "rb"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } if (!(arqDestino = fopen("temp.bin", "wb"))) {//CRIA UM ARQUIVO TEMPORÁRIO printf("\nErro ao abrir o arquivo temporario!\n\n"); fclose(arqOrigem); system("pause"); return; } printf("\n=Digite zero para voltar=\n Digite o codigo do usuario: "); fflush(stdin); scanf("%d", &codigo); fflush(stdin); if (codigo == 0) return; fread(&paciente, sizeof(usuario), 1, arqOrigem); while (!feof(arqOrigem)) { if (codigo == paciente.cod) { //TESTA SE O CODIGO INFORMADO REFERE-SE A UM USUARIO EXISTENTE printf("\n Usuario encontrado!\n\n"); printf("Codigo: %d\n", paciente.cod); printf("Nome: %s\n", paciente.nome); printf("Idade: %d\n", paciente.idade); printf("Sexo: %c\n", paciente.alergia); printf("Telefone: %d\n", paciente.cpf); do{ printf("\n\nDeseja excluir o paciente(1 - Sim ou 2 - Nao): ");//CONFIRMA SE REALMENTE QUER EXCLUIR fflush(stdin); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1) excluiu = 1; break; } else { fwrite(&paciente, sizeof(usuario), 1, arqDestino);//GRAVA OS USUARIOS COM CODIGO DIFERENTE DO INFORMADO EM UM NOVO ARQUIVO } fread(&paciente, sizeof(usuario), 1, arqOrigem); } fclose(arqOrigem);//FECHA O ARQUIVO DE ORIGEM fclose(arqDestino);//FEHA O ARQUIVO DE DESTINO if (excluiu) {//SE A VARIÁVEL "EXCLUIU" RETORNAR UM VALOR NÃO NULO remove(nomeArq);//FUNÇÃO QUE DELETA UM ARQUIVO rename("temp.bin", nomeArq);//FUNÇÃO QUE RENOMEIA UM ARQUIVO printf("\n\nExclusao realizada com sucesso!\n\n"); } else if (codigo != paciente.cod){//SE NÃO FOR ENCONTRADO UM USUARIO COM O CODIGO INFORMADO remove("temp.bin");//DELETA O NOVO ARQUIVO CRIADO (arqDestino) printf("\n\nCodigo nao cadastrado!\n\n"); system("pause"); } else {//SE A VARIÁVEL "EXCLUIU" RETORNAR UM VALOR NULO remove("temp.bin");//DELETA O NOVO ARQUIVO CRIADO (arqDestino) printf("\n\nExclusao nao realizada!\n\n"); system("pause"); } } while (codigo != paciente.cod); } void excluirNomepaciente(char *nomeArq){//PROCEDIMENTO PARA EXCLUIR O USUARIO PELO NOME OU PARTE DO NOME char nome[50]; int excluiu = 0, op, codigoU; usuario paciente; FILE *arqOrigem, *arqDestino; system("cls"); if (!(arqOrigem = fopen(nomeArq, "rb"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } if (!(arqDestino = fopen("temp.bin", "wb"))) {//CRIA UM ARQUIVO TEMPORÁRIO printf("\nErro ao abrir o arquivo temporario!\n\n"); fclose(arqOrigem); system("pause"); return; } printf("\nDigite o nome do paciente: "); fflush(stdin); gets(nome); fflush(stdin); fread(&paciente, sizeof(usuario), 1, arqOrigem); while (!feof(arqOrigem)) { if (strstr(paciente.nome, nome)) {//TESTA SE O NOME OU PARTE DELE REFERE-SE A ALGUM USUARIO printf("\nCodigo: %d\n", paciente.cod); printf("Nome: %s\n", paciente.nome); printf("Idade: %d\n", paciente.idade); printf("Sexo: %c\n", paciente.alergia); printf("Telefone: %d\n\n\n", paciente.cpf); printf("Enderoco:%c\n",paciente.endereco); printf("Alergia:%c",paciente.alergia); printf("Data da alergia:%d\n",paciente.data_alergia); printf("Tratamento:%c\n",paciente.tratamento); do{ printf("\n\nDeseja excluir o usuario(1 - Sim ou 2 - Nao): ");//CONFIRMA SE REALMENTE DESEJA EXCLUIR fflush(stdin); scanf("%d", &op); fflush(stdin); } while (op != 1 && op != 2); if (op == 1){ excluiu = 1; codigoU = paciente.cod; } } else { fwrite(&paciente, sizeof(usuario), 1, arqDestino);//GRAVA OS USUARIOS COM NOME DIFERENTE DO INFORMADO EM UM NOVO ARQUIVO } fread(&paciente, sizeof(usuario), 1, arqOrigem); } fclose(arqOrigem); fclose(arqDestino); if (excluiu) {//SE A VARIÁVEL "EXCLUIU" FOR NÃO NULA remove(nomeArq);//REMOVE ARQUIVO DE ORIGEM rename("temp.bin", nomeArq);//RENOMEIA ARQUIVO TEMPORARIO printf("\n\nExclusao realizada com sucesso!\n\n"); excluirAvalUsuCod(codigoU);//EXCLUI AVALIAÇÕES FEITAS PELO(S) USUARIO(S) EXCLUÍDOS } else if (op == 2){//SE NÃO EXCLUIR USUARIO remove("temp.bin");//DELETA ARQUIVO TEMPORARIO printf("\n\nExclusao nao realizada!\n\n"); system("pause"); } else {//SE NÃO FOR ENCONTRADO USUARIO CORRESPONDENTE remove("temp.bin");//DELETA ARQUIVO TEMPORÁRIO printf("\n\nUsuario nao cadastrado!\n\n"); system("pause"); } } void listarpaciente(char *nomeArq) {//PROCEDIMENTO PARA LISTAR TODOS OS pacientes CADASTRADOS usuario paciente; FILE *arq; if (!(arq = fopen(nomeArq, "rb"))) { printf("\nErro ao abrir o arquivo!\n\n"); system("pause"); return; } system("cls"); printf("\n\nL I S T A G E M\n\n"); fread(&paciente, sizeof(usuario), 1, arq); while (!feof(arq)) { printf("\nCodigo: %d\n", paciente.cod); printf("Nome: %s\n", paciente.nome); printf("Idade: %d\n", paciente.idade); printf("Sexo: %c\n", paciente.alergia); printf("Telefone: %d\n\n\n", paciente.cpf); printf("Enderoco:%c\n",paciente.endereco); printf("Alergia:%c",paciente.alergia); printf("Data da alergia:%d\n",paciente.data_alergia); printf("Tratamento:%c\n",paciente.tratamento); fread(&paciente, sizeof(usuario), 1, arq); } fclose(arq); system("pause"); } int main(){ printf("hello world"); return 0; } obs: ignorarem o main , ainda estou desenvolvendo .

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