int menu;
typedef struct midia{
char nome[30],genero[30],tipo[30],codigo[30],anolancamento[30];
}dados;
int cadastrar(){
struct midia;
dados locadora;
setbuf(stdin,NULL);
printf("digite o codigo: ");
scanf("%s",&locadora.codigo);
setbuf(stdin,NULL);
printf("digite seu nome: ");
gets(locadora.nome);
setbuf(stdin,NULL);
printf("digite o genero: ");
scanf("%s",&locadora.genero);
setbuf(stdin,NULL);
printf("digite o tipo DVD OU BLURAY: ");
scanf("%s",&locadora.tipo);
setbuf(stdin,NULL);
printf("digite o ano de lancamento: ");
scanf("%s",&locadora.anolancamento);
setbuf(stdin,NULL);
fclose(arquivo);
printf("cadastro realizado com sucesso \n");
system("cls");
}
int listar(){
char leitor [50];
FILE*arquivo=fopen("dados.txt","r");
if(arquivo==NULL)exit(1);
while(fgets(leitor,50,arquivo)){
printf("%s",leitor);
}
}
int pesquisar(){
char leitor [50],str1[20],str2[20],cod[30];
int i=0,j=0;
FILE*arquivo=fopen("dados.txt","r");
if(arquivo==NULL)exit(1);
setbuf(stdin,NULL);
printf("pesquisar codigo:");
scanf("%s",cod);
while(fgets(leitor,50,arquivo)){
sscanf(leitor,"%s %s",str1,str2); // 'sscanf' string que divide em outras string
if(strcasecmp(str2,cod)==0)i+=1;
if(i>=1){
if(i>=1&&j<=4)printf("%s \n",leitor);
j++;
}
}
if(i>=1){
printf("Registro encontrado \n");
}else if(i==0){
printf("Registro não encontrado \n");
}
fclose(arquivo);
}
int deletar(){
}
int excluirtodos(){
int op;
printf("Deseja Realmente excluir todos? \n [1-Sim ou 2-não]: ");
scanf("%d",&op);
if (op == 1){
FILE * arquivo;
arquivo = fopen("dados.txt","w");
printf("Todos excluidos com Exito!");
fclose(arquivo);
}
getch();
}
int sair(){
printf("\n Programa finalizado \n");
}
main(){
do{
printf("\n================ MENU ====================\n");
printf("1 - Cadastrar\n");
printf("2 - listar Registro Cadastrado\n");
printf("3 - Pesquisar Registro\n");
printf("4 - Deletar registro \n");
printf("5 - limpar arquivo\n");
printf("0 - Sair\n");
printf("\n=========================================\n");
printf("\nDigite a alternativa desejada: ");
scanf("%d",&menu);
if(menu==1){ // LISTA PARA CADASTRAR
cadastrar();
}
if(menu==2){ // LISTA MOSTRA ITENS CADASTRADO NO REGISTROS
listar();
}
if(menu==3){ // LISTA PARA PESQUISAR OS REGISTROS
pesquisar();
}
if(menu==4){
deletar(); //FUNÇÃO EXCLUIR REGISTRO
}
if(menu==5){
excluirtodos(); // FUNÇÃO limpar REGISTRO
}
if(menu==0){
sair();
}
}
while(menu!=0);
getch();
system("pause");
return 0;
}
Pergunta
Elyton silva
Alguém me ajuda nessa questao que não faço ideia de como fazer
só falta uma funçao para finalizar é essa
- Deletar um registro do arquivo. O usuário deverá escolher o valor do código do registro a ser excluído.
código completo faltando a função excluir logo abaixo me ajudem galera please help
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
int menu;
typedef struct midia{
char nome[30],genero[30],tipo[30],codigo[30],anolancamento[30];
}dados;
int cadastrar(){
struct midia;
dados locadora;
setbuf(stdin,NULL);
printf("digite o codigo: ");
scanf("%s",&locadora.codigo);
setbuf(stdin,NULL);
printf("digite seu nome: ");
gets(locadora.nome);
setbuf(stdin,NULL);
printf("digite o genero: ");
scanf("%s",&locadora.genero);
setbuf(stdin,NULL);
printf("digite o tipo DVD OU BLURAY: ");
scanf("%s",&locadora.tipo);
setbuf(stdin,NULL);
printf("digite o ano de lancamento: ");
scanf("%s",&locadora.anolancamento);
setbuf(stdin,NULL);
FILE *arquivo=fopen("dados.txt","a");
if(!arquivo) exit(1);
fprintf(arquivo,"codigo: %s\n",locadora.codigo);
fprintf(arquivo,"nome: %s\n",locadora.nome);
fprintf(arquivo,"genero: %s\n",locadora.genero);
fprintf(arquivo,"tipo: %s\n",locadora.tipo);
fprintf(arquivo,"ano do lancamento: %s\n",locadora.anolancamento);
fclose(arquivo);
printf("cadastro realizado com sucesso \n");
system("cls");
}
int listar(){
char leitor [50];
FILE*arquivo=fopen("dados.txt","r");
if(arquivo==NULL)exit(1);
while(fgets(leitor,50,arquivo)){
printf("%s",leitor);
}
}
int pesquisar(){
char leitor [50],str1[20],str2[20],cod[30];
int i=0,j=0;
FILE*arquivo=fopen("dados.txt","r");
if(arquivo==NULL)exit(1);
setbuf(stdin,NULL);
printf("pesquisar codigo:");
scanf("%s",cod);
while(fgets(leitor,50,arquivo)){
sscanf(leitor,"%s %s",str1,str2); // 'sscanf' string que divide em outras string
if(strcasecmp(str2,cod)==0)i+=1;
if(i>=1){
if(i>=1&&j<=4)printf("%s \n",leitor);
j++;
}
}
if(i>=1){
printf("Registro encontrado \n");
}else if(i==0){
printf("Registro não encontrado \n");
}
fclose(arquivo);
}
int deletar(){
}
int excluirtodos(){
int op;
printf("Deseja Realmente excluir todos? \n [1-Sim ou 2-não]: ");
scanf("%d",&op);
if (op == 1){
FILE * arquivo;
arquivo = fopen("dados.txt","w");
printf("Todos excluidos com Exito!");
fclose(arquivo);
}
getch();
}
int sair(){
printf("\n Programa finalizado \n");
}
main(){
do{
printf("\n================ MENU ====================\n");
printf("1 - Cadastrar\n");
printf("2 - listar Registro Cadastrado\n");
printf("3 - Pesquisar Registro\n");
printf("4 - Deletar registro \n");
printf("5 - limpar arquivo\n");
printf("0 - Sair\n");
printf("\n=========================================\n");
printf("\nDigite a alternativa desejada: ");
scanf("%d",&menu);
if(menu==1){ // LISTA PARA CADASTRAR
cadastrar();
}
if(menu==2){ // LISTA MOSTRA ITENS CADASTRADO NO REGISTROS
listar();
}
if(menu==3){ // LISTA PARA PESQUISAR OS REGISTROS
pesquisar();
}
if(menu==4){
deletar(); //FUNÇÃO EXCLUIR REGISTRO
}
if(menu==5){
excluirtodos(); // FUNÇÃO limpar REGISTRO
}
if(menu==0){
sair();
}
}
while(menu!=0);
getch();
system("pause");
return 0;
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.