Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct
- {
- int codigo;
- char nome[20];
- char marca[20];
- float preco;
- int qtd_estoque;
- char nome_vendedor[50];
- char telefone[16];
- }Produtos;
- void cadastrar_produto(Produtos *cadastroAtual, int *ContCadastroValido)
- {
- FILE *WArquivo;
- WArquivo = fopen("Arquivo.txt", "a");
- if(WArquivo == NULL)
- {
- printf("Erro ao ler Arquivo\n");
- exit(-1);
- }
- printf("---- Cadastro de Produtos ----\n");
- fflush(stdin);
- printf("Digite o codigo do produto: ");
- scanf("%d", &cadastroAtual->codigo);
- fprintf(WArquivo, "%d|", cadastroAtual->codigo);
- fflush(stdin);
- printf("Digite o nome do Produto: ");
- gets(cadastroAtual->nome);
- fprintf(WArquivo, "%s|", cadastroAtual->nome);
- fflush(stdin);
- printf("Digite a marca do Produto: ");
- gets(cadastroAtual->marca);
- fprintf(WArquivo, "%s|", cadastroAtual->marca);
- fflush(stdin);
- printf("Digite o preco do Produto: ");
- scanf("%f", &cadastroAtual->preco);
- fprintf(WArquivo, "%.2f|", cadastroAtual->preco);
- fflush(stdin);
- printf("Digite a quantidade em estoque: ");
- scanf("%d", &cadastroAtual->qtd_estoque);
- fprintf(WArquivo, "%d|", cadastroAtual->qtd_estoque);
- fflush(stdin);
- printf("Digite o nome do vendedor: ");
- gets(cadastroAtual->nome_vendedor);
- fprintf(WArquivo, "%s|", cadastroAtual->nome_vendedor);
- fflush(stdin);
- printf("Digite o telefone do vendedor - formato +55 12-1234-1234: ");
- gets(cadastroAtual->telefone);
- fprintf(WArquivo, "%s|\n", cadastroAtual->telefone);
- fclose(WArquivo);
- }
- int main()
- {
- Produtos Dados[10];
- Produtos *pontDados = NULL;
- int ContCadastroValido=0;
- int *pontCadastroValido=0;
- pontCadastroValido = &ContCadastroValido;
- pontDados = &Dados[ContCadastroValido];
- char strdados[150];
- char *pontstrdados;
- FILE *Arquivo;
- int create;
- if((Arquivo = fopen("Arquivo.txt", "r")) == NULL)
- {
- printf("----- O Arquivo de dados nao existe - Digite '9'para cria-lo -----\n\n");
- scanf("%d", &create);
- if(create == 9)
- {
- Arquivo = fopen("Arquivo.txt", "w");
- fprintf(Arquivo, "12|nome|teste|12.2|1|teste|212121"); //Inserindo um dado manual com isso nao precisaria do teste que foi feito
- printf("Arquivo criado com sucesso\n\n\n");
- system("pause");
- fclose(Arquivo); // Fechando
- }
- }
- /*Aqui poderia fazer um teste para ver se acabou de criar o arquivo, se acabou é pq não tem nada dentro
- O ideal era criar o arquivo só na hora que alguem inserisse algo dentro dele*/
- if(create != 9)
- {
- Arquivo = fopen("Arquivo.txt", "r"); // Abrindo para poder ler
- while(!feof(Arquivo))
- {
- fgets(strdados, 150, Arquivo);
- pontstrdados = strtok(strdados, "|");
- int x=1;
- int z=0;
- for(x = 1; x < 8; x++)
- {
- switch(x)
- {
- case 1:
- Dados[z].codigo = atoi(pontstrdados);
- break;
- case 2:
- strcpy(Dados[z].nome, pontstrdados);
- break;
- case 3:
- strcpy(Dados[z].marca, pontstrdados);
- break;
- case 4:
- Dados[z].preco = atof(pontstrdados);
- break;
- case 5:
- Dados[z].qtd_estoque = atoi(pontstrdados);
- break;
- case 6:
- strcpy(Dados[z].nome_vendedor, pontstrdados);
- break;
- case 7:
- strcpy(Dados[z].telefone, pontstrdados);
- break;
- }
- pontstrdados = strtok(NULL, "|");
- }
- z++;
- }
- fclose(Arquivo);
- } //Fechando o teste
- int op=0;
- printf("1: Adicionar novo produto\n");
- printf("2: Editar produto\n");
- printf("3: Listar infomacoes de todos os produtos(filtrando por nome/marca)\n");
- printf("4: Aumentar preco dos produtos\n");
- printf("5: Gerar relatorio - quantidade inferior a 10\n");
- printf("6: Listar vendedores\n");
- printf("7: Listar vendedores(filtrando por marca)\n");
- scanf("%d", &op);
- switch(op){
- case 1:
- cadastrar_produto(pontDados, pontCadastroValido);
- break;
- case 2:
- break;
- case 3:
- break;
- case 4:
- break;
- case 5:
- break;
- case 6:
- break;
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment