Jump to content
Fórum Script Brasil
  • 0

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


Phee

Question

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;

}

Edited by Phee
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...