linguagem c structs arquivos parte5

  Рет қаралды 7,227

Professor Cicero Almeida

Professor Cicero Almeida

Күн бұрын

Пікірлер: 60
@Dev_4_Ever
@Dev_4_Ever 5 ай бұрын
Seu conteúdo e muito bom faz a parte 6 tu encina muito bem parabéns
@joseaaraujojr
@joseaaraujojr 8 жыл бұрын
Professor, e a parte 6? por favor!!!!
@twicke1058
@twicke1058 3 жыл бұрын
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(); } }
@matheusteixeira7188
@matheusteixeira7188 2 жыл бұрын
Cara, tem 1 ano que esse comentário foi feito e me ajudou pra caramba. Valeu de vdd mesmo
@sergiocarvalho9988
@sergiocarvalho9988 6 жыл бұрын
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-ee3pi
@JoaoPedro-ee3pi 5 жыл бұрын
nunca desejei tanto uma continuação
@paulolinhares9595
@paulolinhares9595 7 жыл бұрын
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...
@luisfilipesouza3130
@luisfilipesouza3130 6 жыл бұрын
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
@jephersoncescon
@jephersoncescon 6 жыл бұрын
Muito obrigado, preciso fazer o trabalho da facul me quebrou mol galho rs
@matheuspatrick6054
@matheuspatrick6054 3 жыл бұрын
e a excluir? ela que pega
@luisfilipesouza3130
@luisfilipesouza3130 6 жыл бұрын
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-zl7ru
@Gustavooliveira-zl7ru 6 жыл бұрын
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(); } }
@jephersoncescon
@jephersoncescon 6 жыл бұрын
mais uma vez obrigado!
@mateusmuniz__
@mateusmuniz__ 6 жыл бұрын
Cara, tu é o cara!
@kqu4tro
@kqu4tro 5 жыл бұрын
muito obrigado 💜
@thiagovitor8596
@thiagovitor8596 5 жыл бұрын
Você vai fazer parte do meu coração
@gabriel-s-dev
@gabriel-s-dev 3 жыл бұрын
2021 e cade o restante professor
@ramorafa
@ramorafa 6 жыл бұрын
Excelente aula! Deveria ter continuado! Parabéns!
@lancelotazkhaban46
@lancelotazkhaban46 8 жыл бұрын
Professor, não desista de nós! Suas aulas são incríveis!
@professorciceroalmeida
@professorciceroalmeida 8 жыл бұрын
Obrigado! Estou trabalhando em novos videos. Um abraço
@tulioalbuquerque1833
@tulioalbuquerque1833 8 жыл бұрын
Professor suas aulas são excelentes, não desista de nós!
@f3rnando485
@f3rnando485 2 жыл бұрын
@@professorciceroalmeida e ai cade o resto dos videos?
@f3rnando485
@f3rnando485 2 жыл бұрын
por sua culpa vamos reprovar
@luanoliveira7979
@luanoliveira7979 4 жыл бұрын
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!
@marcosgabrielbortoluzzides7073
@marcosgabrielbortoluzzides7073 4 жыл бұрын
Ajudou demais, professor. Grande abraço!
@J0nann
@J0nann 6 жыл бұрын
Parabéns pelo conteúdo, por compartilhar o seu conhecimento.
@amandaconstante6124
@amandaconstante6124 2 жыл бұрын
o vídeo não tem a continuação?
@herick_zeno3035
@herick_zeno3035 11 ай бұрын
cade a parte 6?
@gabrielfreitas7657
@gabrielfreitas7657 6 жыл бұрын
2 anos se passaram e ele n colocou a continuidade :(
@Henry.Erasmo_
@Henry.Erasmo_ 9 ай бұрын
7 anos, meu amigo
@deyvisonlizardo4653
@deyvisonlizardo4653 7 жыл бұрын
Meio atrasado mas... QUEREMOS PARTE 6! HUHU!
@bonfimLucas
@bonfimLucas 6 жыл бұрын
Uma pena não ter continuado! Mas Obrigado por todas as aulas compartilhadas!
@ddiegohenriques
@ddiegohenriques 8 жыл бұрын
Professor, continua as aulas, me ajudou muuuuito!
@pedrocunha1142
@pedrocunha1142 6 жыл бұрын
Ótimas aulas, terá a parte 6 ? Muito didático. Abç.
@lafera_adh
@lafera_adh 8 жыл бұрын
não teve continuação ?
@luizneto5588
@luizneto5588 6 жыл бұрын
faltou o editar, teria o código pra mostrar ?
@thiagowillian3565
@thiagowillian3565 7 жыл бұрын
Professor vai continuar?
@michaeld4083
@michaeld4083 8 жыл бұрын
Obrigado professor, o senhor salvou meu período, mas cadê o restante dessa atividade? a parte de remover. Abraços, otinas aulas
@buribux
@buribux 8 жыл бұрын
Falta lista por uma inicial e remover...
@nandorace
@nandorace 2 жыл бұрын
Faltou o remover contato
@leoandy4364
@leoandy4364 8 жыл бұрын
Cadê o resto das aulas prof?
@alfaandbrothers4516
@alfaandbrothers4516 7 жыл бұрын
Por favor,faça o eliminar,obrigado!
@roggervieira
@roggervieira 8 жыл бұрын
Falta o remover!aiiiii
@CaioVillarRocha
@CaioVillarRocha 6 жыл бұрын
Era a parte mais importante kkkk
@CarlosCoutinho93
@CarlosCoutinho93 8 жыл бұрын
Acabou, que pena :(
@jonnhythunder451
@jonnhythunder451 7 жыл бұрын
e a parte 66666666666666666666666666666666666666666666666666666666666666666666666666?
@ezequiel9195
@ezequiel9195 7 жыл бұрын
Preciso de remover :(
@rebecacarvalho8652
@rebecacarvalho8652 8 жыл бұрын
Professor como faz pra remover o nome?
@nandorace
@nandorace 2 жыл бұрын
É o que falta para terminar meu trabalho
@papocalcinha01
@papocalcinha01 7 жыл бұрын
alguém conseguiu fazer a opção de remover?
@nandorace
@nandorace 2 жыл бұрын
Ali postaram um código mas ele deleta a lista inteira e não um contato específico
@marciocardoso8414
@marciocardoso8414 4 жыл бұрын
quem esta vendo em 2040 da um like!!!!
@and7231
@and7231 7 жыл бұрын
Faltou remover :(
@joseluizaraujosilva3635
@joseluizaraujosilva3635 6 жыл бұрын
Alguem conseguiu fazer a parte de remover?
@nandorace
@nandorace 2 жыл бұрын
Nao
APC - Linguagem C - Structs e Arquivos - parte 1
10:39
Professor Cicero Almeida
Рет қаралды 26 М.
Why You Shouldn't Nest Your Code
8:30
CodeAesthetic
Рет қаралды 2,8 МЛН
БУ, ИСПУГАЛСЯ?? #shorts
00:22
Паша Осадчий
Рет қаралды 2,1 МЛН
ЛУЧШИЙ ФОКУС + секрет! #shorts
00:12
Роман Magic
Рет қаралды 31 МЛН
Из какого города смотришь? 😃
00:34
МЯТНАЯ ФАНТА
Рет қаралды 1,6 МЛН
The Singing Challenge #joker #Harriet Quinn
00:35
佐助与鸣人
Рет қаралды 33 МЛН
APC - Linguagem C - Structs e Arquivos - parte 2
15:42
Professor Cicero Almeida
Рет қаралды 25 М.
linguagem c structs arquivos parte4
11:43
Professor Cicero Almeida
Рет қаралды 9 М.
JWT авторизация. Основы JWT - механизма.
6:45
Хочу вАйти
Рет қаралды 15 М.
7 Лет Опыта в IT | Что я Понял?
19:56
Vlad Mishustin
Рет қаралды 220 М.
Programa de cadastro de pessoas - Aula 1
15:26
Leonardo Hipólito (Vídeo Aulas)
Рет қаралды 156 М.
Programa de cadastro de notas com structs e arquivos - Aula 1
10:37
Leonardo Hipólito (Vídeo Aulas)
Рет қаралды 51 М.
My 10 “Clean” Code Principles (Start These Now)
15:12
Conner Ardman
Рет қаралды 269 М.
Dynamic Arrays 🌱
24:22
Bro Code
Рет қаралды 98 М.
Resolvendo exercícios em estilo de maratona de programação - Parte 1
15:27
Professor Cicero Almeida
Рет қаралды 4,2 М.
Communicating between processes (using pipes) in C
14:00
CodeVault
Рет қаралды 284 М.
БУ, ИСПУГАЛСЯ?? #shorts
00:22
Паша Осадчий
Рет қаралды 2,1 МЛН