Ir para conteúdo
Fórum Script Brasil
  • 0

[Ajuda] Arquivos - Incluir gravação de dados em programa.


Phee

Pergunta

Boa noite, eu preciso criar um programa que cadastre clientes e materiais de estoque para uma empresa fictícia, por enquanto tenho apenas a parte de cadastro de pessoas, enfim. Eu preciso fazer com que esse programa gere arquivos para armazena-los em algum local do pc e com o executável do programa eu consiga dar continuidade no cadastro de pessoas e essas coisas.

Estou muito perdido em relação a Arquivos, gostaria se possível se alguém poderia me ajudar com esse problema

agradeço muito e obrigado pela paciência.

No momento o programa segue da seguinte forma:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <unistd.h>

#include <conio.h>

#define BUFFER 64

typedef struct lista {

char *nome;

int idade;

struct lista *proximo;

} Dados;

Dados *inicia_dados(char *nome, int idade);

Dados *insere_dados(Dados *dados, char *nome, int idade);

void exibe_dados(Dados *dados);

void busca_dados(Dados *dados, char *chave);

Dados *deleta_dados(Dados *dados);

int checa_vazio(Dados *dados);

void insere(void);

void exibe(void);

void busca(void);

void deleta(void);

Dados *principal = NULL;

Dados *inicia_dados(char *nome, int idade)

{

Dados *novo;

novo = (Dados *)malloc(sizeof(Dados));

novo->nome = (char *)malloc(strlen(nome)+1);

strncpy(novo->nome, nome, strlen(nome)+1);

novo->idade = idade;

novo->proximo = NULL;

return novo;

}

Dados *insere_dados(Dados *dados, char *nome, int idade) {

Dados *novo;

novo = (Dados *)malloc(sizeof(Dados));

novo->nome = (char *)malloc(strlen(nome)+1);

strncpy(novo->nome, nome, strlen(nome)+1);

novo->idade = idade;

novo->proximo = dados;

return novo;

}

void exibe_dados(Dados *dados) {

fprintf(stdout, "Cadastro:\n\n");

fprintf(stdout, "------------------------\n");

for (; dados != NULL; dados = dados->proximo) {

fprintf(stdout, "Nome: %s\n", dados->nome);

fprintf(stdout, "Idade: %d\n", dados->idade);

fprintf(stdout, "------------------------\n ");

}

printf("Pressione uma tecla para continuar.");

getch();

}

void busca_dados(Dados *dados, char *chave) {

int achou = 0;

fprintf(stdout, "Cadastro:\n\n");

for (; dados != NULL; dados = dados->proximo) {

if (strcmp(chave, dados->nome) == 0) {

fprintf(stdout, "------------------------\n");

fprintf(stdout, "Nome: %s\n", dados->nome);

fprintf(stdout, "Idade: %d\n", dados->idade);

fprintf(stdout, "------------------------\n");

achou++;

}

}

if (achou == 0)

fprintf(stdout, "Nenhum resultado encontrado.\nPressione uma tecla para continuar.\n");

else

fprintf(stdout, "Foram encontrados %d registros. \nPressione uma tecla para continuar.\n", achou);

sleep(1);

getch();

}

Dados *deleta_dados(Dados *dados) {

Dados *novo;

novo = dados->proximo;

free(dados->nome);

free(dados);

fprintf(stdout, "O ultimo registro inserido foi deletado com sucesso.\\n");

sleep(1);

return novo;

}

int checa_vazio(Dados *dados) {

if (dados == NULL) {

fprintf(stdout, "Lista vazia!\\n");

sleep(1);

return 1;

} else

return 0;

}

void insere(void) {

char *nome;

int idade;

nome = (char *)malloc(BUFFER);

fprintf(stdout, "\n\nDigite o Nome: \n----> ");

scanf("%s", nome);

fprintf(stdout, "\n");

fprintf(stdout, "Digite a Idade: \n----> ");

scanf("%d", &idade);

fprintf(stdout, "\n");

if (principal == NULL)

principal = inicia_dados(nome, idade);

else

principal = insere_dados(principal, nome, idade);

}

void exibe(void) {

if (!checa_vazio(principal))

exibe_dados(principal);

}

void busca(void) {

char *chave;

if (!checa_vazio(principal)) {

chave = (char *)malloc(BUFFER);

fprintf(stdout, "Digite o nome para buscar: \\n--> ");

scanf("%s", chave);

busca_dados(principal, chave);

getch();

}

}

void deleta(void) {

if (!checa_vazio(principal))

principal = deleta_dados(principal);

}

int main(void) {

char escolha;

do {

system("cls");

fprintf(stdout, "\n ECOLIFE - Cadastro de Pessoas \n\n");

fprintf(stdout, "Escolha uma opcao: \n\n");

fprintf(stdout, "1 - Insere Dados\n");

fprintf(stdout, "2 - Exibe Dados\n");

fprintf(stdout, "3 - Busca Dados\n");

fprintf(stdout, "4 - Deleta Dados\n");

fprintf(stdout, "5 - Sair\n\n");

scanf("%c", &escolha);

switch(escolha) {

case '1':

insere();

break;

case '2':

exibe();

break;

case '3':

busca();

break;

case '4':

deleta();

break;

case '5':

exit(0);

break;

default:

fprintf(stderr,"Digite uma opcao valida!\\n");

sleep(1);

break;

}

}

while (escolha > 0);

return 0;

}

Editado por Phee
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...