Seu conteúdo e muito bom faz a parte 6 tu encina muito bem parabéns
@joseaaraujojr8 жыл бұрын
Professor, e a parte 6? por favor!!!!
@twicke10583 жыл бұрын
Código para o editar. Utilizei a função remover do Luis Filipe de Sousa e adaptei-o para fazer o editar. Apenas têm de fazer algumas alterações porque eu não usei os mesmos nomes que o Professor. Bom trabalho. void editar_contacto() { FILE* ficheiro; FILE* temp; CONTACTO ctt; char nome[30]; ficheiro = fopen("ficheiro.dat","rb"); temp = fopen("tmp.dat","wb"); if(ficheiro == NULL && temp == NULL) { printf("Não foi possível abrir o ficheiro.txt "); getch(); } else { cabecalho(); fflush(stdin); printf("Digite o nome do/s contacto/s que pertende editar: "); gets(nome); while(fread(&ctt, sizeof(CONTACTO), 1, ficheiro) == 1) { if(strcmp(nome, ctt.nome) == 0) { printf(" Nome: %s ", ctt.nome); printf("Telefone: %s ", ctt.telefone); printf("Data de Aniversário: %d/%d/%d ", ctt.aniv.dia, ctt.aniv.mes, ctt.aniv.ano); printf("------------------------------------------- "); } else { fwrite(&ctt, sizeof(CONTACTO), 1, temp); } } fclose(ficheiro); fclose(temp); fflush(stdin); printf("Tem a certeza que pertende alterar os dados deste/s contactos(S/N)? "); if(getche() == 'S') { if(remove("ficheiro.dat") == 0 && rename ("tmp.dat", "ficheiro.dat") == 0) { FILE* ficheiro; CONTACTO ctt; ficheiro = fopen("ficheiro.dat", "ab"); fflush(stdin); printf(" Digite o novo nome do contacto: "); gets(ctt.nome); fflush(stdin); printf("Digite o novo número de telefone do contato: "); gets(ctt.telefone); printf("Digite a nova data de aniversário do contato(dd mm yyyy): "); scanf("%d %d %d", &ctt.aniv.dia, &ctt.aniv.mes, &ctt.aniv.ano); fwrite(&ctt, sizeof(CONTACTO), 1, ficheiro); printf(" Contacto alterado com sucesso! "); } else { remove("tmp.dat"); } } fclose(temp); fclose(ficheiro); getch(); } }
@matheusteixeira71882 жыл бұрын
Cara, tem 1 ano que esse comentário foi feito e me ajudou pra caramba. Valeu de vdd mesmo
@sergiocarvalho99886 жыл бұрын
Sua explicação e de alto nível professor Cícero. Sem falar na sua excelente organização e sequência das aulas. Gostaria de agradecer imensamente pela sua boa vontade e fé. Sendo assim peço se possível, a V. Sa. que faça uma aula com a função EXCLUIR. Obrigado e que Deus te abençoe sempre.
@JoaoPedro-ee3pi5 жыл бұрын
nunca desejei tanto uma continuação
@paulolinhares95957 жыл бұрын
Excelente, bem explicado, boa didática, bem organizado o código, você é um ótimo PROFESSOR, com certeza você e outros grandes MESTRES que se tem disponibilizado a ensinar... tem contribuído muito por nosso país!!! Essas 05 videos aulas foi de grande ajuda! Gostaria muito que você continuasse com esse belo projeto...
@luisfilipesouza31306 жыл бұрын
com mérito as aulas do professor Cicero resolvi a listagem pela inicial do nome, e so criar um void pesquisar e substituir a linha do if para if(ctt.nome[0]==nome[0]){ quem assistiu as aulas não terá dificuldades
@jephersoncescon6 жыл бұрын
Muito obrigado, preciso fazer o trabalho da facul me quebrou mol galho rs
@matheuspatrick60543 жыл бұрын
e a excluir? ela que pega
@luisfilipesouza31306 жыл бұрын
utilizei a lógica do Cicero nas aulas e pesquisei para resolver o problema do final, espero que esteja do seu gosto professor, obrigado pelo ensinamento, segue o remover void remover(){ FILE* arq; FILE* temp; CONTATO ctt; char nome[30]; arq = fopen("agenda.txt","rb");//abrir em modo rb leitura binaria temp = fopen("tmp.txt","wb");//abrir em modo wb ele limpa e grava binario if(arq==NULL&&temp==NULL){ printf("Problemas na abertura do arquivo! "); getch(); }else{ cabecalho(); fflush(stdin); printf("Digite o nome a deletar: "); gets(nome); while(fread(&ctt,sizeof(CONTATO),1,arq)==1){ if(strcmp(nome,ctt.nome)==0){ printf("Nome: %s ",ctt.nome); printf("Fone: %s ",ctt.fone); printf("Aniversário: %d/%d/%d ",ctt.aniv.dia,ctt.aniv.mes,ctt.aniv.ano); printf("------------------------------------------------- "); }else{ fwrite(&ctt,sizeof(CONTATO),1,temp);//gravando os dados no arquivo temp } } fclose(arq);//fechar o arq fclose(temp);//fechar o temp fflush(stdin); printf("Deseja deletar (s/n)? "); if(getche()=='s'){ //vamos remover o arquivo "agenda.txt" e renomear o arquivo "tmp.txt" para "agenda.txt" if(remove("agenda.txt")==0&&rename("tmp.txt","agenda.txt")==0){//verifica se as operacoes foram realizadas com sucesso! printf(" Operacao realizada com sucesso!"); }else{ remove("tmp.txt");//remover o arquivo tmp se acondicao foi "n" na hora de deletar } } fclose(temp); fclose(arq); getch(); } }
@Gustavooliveira-zl7ru6 жыл бұрын
obrigado pelo complemento. deu certo. código completo abaixo; #include #include #include #include #include typedef struct data DATA; struct data{ int dia; int mes; int ano; }; typedef struct contato CONTATO; struct contato{ char nome[30]; char fone[15]; DATA aniv; }; void cabecalho(); void remover(); void inputData(); void lista(); void pesquisar(); void anivMes(); void listarLetra(); main(){ setlocale(LC_ALL, "Portuguese"); int opcao; do{ cabecalho(); printf("1 - Inserir "); printf("2 - Remover "); printf("3 - Pesquisar pelo nome "); printf("4 - Listar "); printf("5 - Listar por uma inicial "); printf("6 - Imprimir aniversariantes do mês "); printf("7 - Sair "); printf(" Escolha uma opção: "); scanf("%d",&opcao); switch(opcao){ case 1: inputData(); break; case 2: remover(); break; case 3: pesquisar(); break; case 4: listar(); break; case 5: listarLetra(); break; case 6: anivMes(); break; case 7: printf("Obrigado pela visita! "); getch(); break; default: printf("Opção inválida! "); getch(); break; } }while(opcao != 7); } void cabecalho(){ system("cls"); printf("--------------------------------------------- "); printf("\t\tAGENDA ELETRÔNICA "); printf("--------------------------------------------- "); } void inputData(){ FILE* arquivo; CONTATO ctt; arquivo = fopen("agenda.txt", "ab"); if(arquivo == NULL){ printf("Problemas na abertura do arquivo "); } else{ do{ cabecalho(); fflush(stdin); printf("Digite o nome: "); gets(ctt.nome); fflush(stdin); printf("Digite o fone: "); gets(ctt.fone); printf("Digite o aniversário: "); scanf("%d %d %d",&ctt.aniv.dia,&ctt.aniv.mes,&ctt.aniv.ano); fwrite(&ctt, sizeof(CONTATO), 1, arquivo); printf("Deseja continuar(s/n)?"); }while(getche() == 's'); fclose(arquivo); } } void listar(){ FILE* arquivo; CONTATO ctt; arquivo = fopen("agenda.txt", "rb"); cabecalho(); if(arquivo == NULL){ printf("Problemas na abertura do arquivo "); } else{ while(fread(&ctt, sizeof(CONTATO), 1,arquivo) == 1){ printf("\tNome: %s ",ctt.nome); printf("\tFone: %s ",ctt.fone); printf("\tAniversário: %d/%d/%d ", ctt.aniv.dia, ctt.aniv.mes, ctt.aniv.ano); printf("---------------------------------------------- "); } } fclose(arquivo); getch(); } void pesquisar(){ FILE* arquivo; CONTATO ctt; char nome[30]; arquivo = fopen("agenda.txt", "rb"); cabecalho(); if(arquivo == NULL) { printf("Problemas na abertura do arquivo! "); } else { fflush(stdin); printf("Digite o nome a pesquisar: "); gets(nome); while(fread(&ctt, sizeof(CONTATO), 1, arquivo) == 1) { if(strcmp(nome, ctt.nome) == 0) { printf("\tNome: %s ",ctt.nome); printf("\tFone: %s ",ctt.fone); printf("\tAniversário: %d/%d/%d ", ctt.aniv.dia, ctt.aniv.mes, ctt.aniv.ano); printf("---------------------------------------------- "); } } } fclose(arquivo); getch(); } void anivMes(){ FILE* arquivo; CONTATO ctt; arquivo = fopen("agenda.txt", "rb"); cabecalho(); if(arquivo == NULL) { printf("Problemas na abertura do arquivo! "); } else { int mes; printf("Digite o mês: "); scanf("%d",&mes); while(fread(&ctt, sizeof(CONTATO), 1, arquivo) == 1) { if(mes == ctt.aniv.mes) { printf("\tNome: %s ",ctt.nome); printf("\tFone: %s ",ctt.fone); printf("\tAniversário: %d/%d/%d ", ctt.aniv.dia, ctt.aniv.mes, ctt.aniv.ano); printf("---------------------------------------------- "); } } } } void listarLetra(){ FILE* arquivo; CONTATO ctt; char nome[30]; arquivo = fopen("agenda.txt", "rb"); cabecalho(); if(arquivo == NULL) { printf("Problemas na abertura do arquivo! "); } else { fflush(stdin); printf("Digite o nome a pesquisar: "); gets(nome); while(fread(&ctt, sizeof(CONTATO), 1, arquivo) == 1) { if(ctt.nome[0] == nome[0]) { printf("\tNome: %s ",ctt.nome); printf("\tFone: %s ",ctt.fone); printf("\tAniversário: %d/%d/%d ", ctt.aniv.dia, ctt.aniv.mes, ctt.aniv.ano); printf("---------------------------------------------- "); } } } fclose(arquivo); getch(); } void remover(){ FILE* arq; FILE* temp; CONTATO ctt; char nome[30]; arq = fopen("agenda.txt","rb");//abrir em modo rb leitura binaria temp = fopen("tmp.txt","wb");//abrir em modo wb ele limpa e grava binario if(arq==NULL&&temp==NULL) { printf("Problemas na abertura do arquivo! "); getch(); } else { cabecalho(); fflush(stdin); printf("Digite o nome a deletar: "); gets(nome); while(fread(&ctt,sizeof(CONTATO),1,arq)==1) { if(strcmp(nome,ctt.nome)==0) { printf("Nome: %s ",ctt.nome); printf("Fone: %s ",ctt.fone); printf("Aniversário: %d/%d/%d ",ctt.aniv.dia,ctt.aniv.mes,ctt.aniv.ano); printf("------------------------------------------------- "); } else { fwrite(&ctt,sizeof(CONTATO),1,temp);//gravando os dados no arquivo temp } } fclose(arq);//fechar o arq fclose(temp);//fechar o temp fflush(stdin); printf("Deseja deletar (s/n)? "); if(getche()=='s') { //vamos remover o arquivo "agenda.txt" e renomear o arquivo "tmp.txt" para "agenda.txt" if(remove("agenda.txt")==0&&rename("tmp.txt","agenda.txt")==0) {//verifica se as operacoes foram realizadas com sucesso! printf(" Operacao realizada com sucesso!"); } else { remove("tmp.txt");//remover o arquivo tmp se acondicao foi "n" na hora de deletar } } fclose(temp); fclose(arq); getch(); } }
@jephersoncescon6 жыл бұрын
mais uma vez obrigado!
@mateusmuniz__6 жыл бұрын
Cara, tu é o cara!
@kqu4tro5 жыл бұрын
muito obrigado 💜
@thiagovitor85965 жыл бұрын
Você vai fazer parte do meu coração
@gabriel-s-dev3 жыл бұрын
2021 e cade o restante professor
@ramorafa6 жыл бұрын
Excelente aula! Deveria ter continuado! Parabéns!
@lancelotazkhaban468 жыл бұрын
Professor, não desista de nós! Suas aulas são incríveis!
@professorciceroalmeida8 жыл бұрын
Obrigado! Estou trabalhando em novos videos. Um abraço
@tulioalbuquerque18338 жыл бұрын
Professor suas aulas são excelentes, não desista de nós!
@f3rnando4852 жыл бұрын
@@professorciceroalmeida e ai cade o resto dos videos?
@f3rnando4852 жыл бұрын
por sua culpa vamos reprovar
@luanoliveira79794 жыл бұрын
Gostei muito das aulas. Estou fazendo faculdade de TI e estava aprendendo C, porém e principalmente nessa parte de manipular arquivos, estava bem difícil, não estava conseguindo, essas aulas me ajudaram muito... espero poder ver a continuação depois. Parabéns!
@marcosgabrielbortoluzzides70734 жыл бұрын
Ajudou demais, professor. Grande abraço!
@J0nann6 жыл бұрын
Parabéns pelo conteúdo, por compartilhar o seu conhecimento.
@amandaconstante61242 жыл бұрын
o vídeo não tem a continuação?
@herick_zeno303511 ай бұрын
cade a parte 6?
@gabrielfreitas76576 жыл бұрын
2 anos se passaram e ele n colocou a continuidade :(
@Henry.Erasmo_9 ай бұрын
7 anos, meu amigo
@deyvisonlizardo46537 жыл бұрын
Meio atrasado mas... QUEREMOS PARTE 6! HUHU!
@bonfimLucas6 жыл бұрын
Uma pena não ter continuado! Mas Obrigado por todas as aulas compartilhadas!
@ddiegohenriques8 жыл бұрын
Professor, continua as aulas, me ajudou muuuuito!
@pedrocunha11426 жыл бұрын
Ótimas aulas, terá a parte 6 ? Muito didático. Abç.
@lafera_adh8 жыл бұрын
não teve continuação ?
@luizneto55886 жыл бұрын
faltou o editar, teria o código pra mostrar ?
@thiagowillian35657 жыл бұрын
Professor vai continuar?
@michaeld40838 жыл бұрын
Obrigado professor, o senhor salvou meu período, mas cadê o restante dessa atividade? a parte de remover. Abraços, otinas aulas
@buribux8 жыл бұрын
Falta lista por uma inicial e remover...
@nandorace2 жыл бұрын
Faltou o remover contato
@leoandy43648 жыл бұрын
Cadê o resto das aulas prof?
@alfaandbrothers45167 жыл бұрын
Por favor,faça o eliminar,obrigado!
@roggervieira8 жыл бұрын
Falta o remover!aiiiii
@CaioVillarRocha6 жыл бұрын
Era a parte mais importante kkkk
@CarlosCoutinho938 жыл бұрын
Acabou, que pena :(
@jonnhythunder4517 жыл бұрын
e a parte 66666666666666666666666666666666666666666666666666666666666666666666666666?
@ezequiel91957 жыл бұрын
Preciso de remover :(
@rebecacarvalho86528 жыл бұрын
Professor como faz pra remover o nome?
@nandorace2 жыл бұрын
É o que falta para terminar meu trabalho
@papocalcinha017 жыл бұрын
alguém conseguiu fazer a opção de remover?
@nandorace2 жыл бұрын
Ali postaram um código mas ele deleta a lista inteira e não um contato específico