Ir ao conteúdo
  • Cadastre-se

Arquivo em c


Posts recomendados

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;
		}
	}
	
}

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!