Ir ao conteúdo
  • Cadastre-se

Renan José da Silva

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Olá pessoal! Estou com um probleminha. Preciso fazer um programa de cadastro de produtos (em c), e esse cadastro precisa ser salvo em um arquivo. Até ai tudo bem, eu fiz e funcionou corretamente. Porém, cada produto precisa de um tipo de "código" único que deve ser gerado pelo próprio programa e esse código não pode se repetir em outros produtos. Preciso de uma maneira que o programa continue gerando códigos únicos mesmo após o programa ser fechado e aberto novamente. Vou deixar o código do que fiz até agora. Caso tenha que mudar algo pra adaptar essa função podem dizer. Alguém ai pode dar uma mãozinha? #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <locale.h> #include <strings.h> struct Produto { int codprod; char nomeprod[15]; float preco = 0; int qtdarm = 0; char desc[100]; }; main() { setlocale(LC_ALL, ""); struct Produto produto; int op = 0; FILE *arquivo; arquivo = fopen("bd.txt", "a"); fclose (arquivo); printf("Escolha uma opção:\n"); while(op != 9) { printf("\nEscolha 1 para cadastrar um novo produto\n"); printf("\nEscolha 2 para mostrar os produtos ja cadastrados\n"); printf("\nEscolha 9 para encerrar o programa\n\n"); scanf("%d", &op); switch(op) { case 1: setbuf(stdin, NULL); printf("\n"); arquivo = fopen("bd.txt", "a"); printf("Nome do produto: "); gets(produto.nomeprod); fprintf(arquivo, "\nNome do produto: %s", produto.nomeprod); printf("Preço: "); scanf("%f", &produto.preco); fprintf(arquivo,"\nPreco do produto: %.2f", produto.preco); printf("Quantidade armazenada: "); scanf("%d", &produto.qtdarm); fprintf(arquivo, "\nQuantidade armazenada: %d", produto.qtdarm); setbuf(stdin, NULL); printf("Descricao: "); gets(produto.desc); fprintf(arquivo, "\nDescricao: %s", produto.desc); fclose (arquivo); break; case 2: arquivo = fopen("bd.txt", "r"); char arq[500]; if(fgets(arq, 500, arquivo) == NULL) { printf("Não há produtos cadastrados"); } while(fgets(arq, 500, arquivo) != NULL) { printf("\n%s\n", arq); } fclose(arquivo); break; case 3: printf("\nPrograma incerrado\n"); fclose(arquivo); break; } } }

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