Ir ao conteúdo
  • Cadastre-se

Jaump

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Segue abaixo o código, quando compilo, a opção 4 que é de gerar relatórios não funciona. Tenho que gerar dois relatórios, mas não dá certo. Preciso de ajuda! #include <stdio.h>#include <conio.h>#include <string.h>#include <ctype.h>#include <stdlib.h>#include <windows.h>struct sreg { int cod; char nome[32], email[51], ativo, inativo; };FILE *parq, *ativo, *inativo;sreg ficha;void cadastrar();void listar();main(){ int op; parq = fopen("dados.dat", "rb+"); if (parq == NULL) parq = fopen("dados.dat", "wb+"); do { system("cls"); printf("Cadastro de Clientes\n\n\n"); printf("opções:\n\n"); printf("1 - Cadastrar cliente...\n"); printf("2 - Listar Clientes...\n"); printf("3 - Alterar Cliente...\n"); printf("4 - Gerar Relatorios...\n"); printf("5 - Sair"); printf("\n\nEscolha: "); scanf("%d", &op); switch (op) { case 1: cadastrar(); break; case 2: listar(); break; case 3: break; case 4: break; default: if (op != 5) { printf("\n\n\nOpcao invalida!!"); Beep(1000, 700); } } } while (op != 5); fclose(parq);}void cadastrar(){ system("cls"); printf("Cadastrar Cliente\n\n\n"); printf("Codigo (nro.): "); scanf("%d", &ficha.cod); fflush(stdin); printf("\nNome: "); gets(ficha.nome); printf("\nEmail: "); gets(ficha.email); printf("\nAtivo (S ou N): "); scanf("%c", &ficha.ativo); ficha.ativo = toupper(ficha.ativo); fseek(parq, 0, SEEK_END); // posiciona no final do arq. fwrite(&ficha, sizeof(sreg), 1, parq); printf("\n\n\nGravando..."); Sleep(400);}void listar(){ system("cls"); printf("Listar Clientes:\n\n\n"); fseek(parq, 0, SEEK_SET); // posiciona no início fread(&ficha, sizeof(sreg), 1, parq); while (!feof(parq)) { printf("Nome: %s", ficha.nome); printf("\n\n----------------------------------\n\n"); printf("Codigo: %d", ficha.cod); printf("\n\n----------------------------------\n\n"); printf("Email: %s", ficha.email); printf("\n\n----------------------------------\n\n"); printf("Status: %c", ficha.ativo); printf("\n\n----------------------------------\n\n"); fread(&ficha, sizeof(sreg), 1, parq); } printf("\n\n\nPressione qualquer tecla para retornar..."); getch();}void gerarRelatorio(){system("cls");printf("Gerando Relatorios: \n\n");printf("Texto: ");ficha.ativo;ficha.inativo;ativo = fopen("ativo.txt", "w");printf("Pessoas cadastradas \n\n");printf("Codigo (nro.): ");scanf("%d", &ficha.cod);fflush(stdin);printf("\nNome: ");gets(ficha.nome);printf("\nEmail: ");gets(ficha.email);printf("\nAtivo (s): ");scanf("%c", &ficha.ativo);ficha.ativo = toupper(ficha.ativo);fseek(ativo, 0, SEEK_END);fwrite(&ficha, sizeof(sreg), 1, ativo);printf("\n\n\nGerando...");Sleep(200);inativo = fopen("inativo.txt", "w");printf("Pessoas cadastradas \n\n");printf("Codigo (nro.): ");scanf("%d", &ficha.cod);fflush(stdin);printf("\nNome: ");gets(ficha.nome);printf("\nEmail: ");gets(ficha.email);printf("\nAtivo (s): ");scanf("%c", &ficha.ativo);ficha.ativo = toupper(ficha.ativo);fseek(inativo, 0, SEEK_END);fwrite(&ficha, sizeof(sreg), 1, inativo);printf("\n\n\nGerando...");Sleep(200);}

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