Ir ao conteúdo
  • Cadastre-se

Arquivo em c


linguagem_c

Posts recomendados

CLIENTE => número do cliente, nome, telefone, endereço

CONTA BANCÁRIA => número da conta, número do cliente, saldo

Crie um programa que faça o cadastramento de contas, verificando se o número do cliente titular da conta já foi previamente cadastrado. Se existir, deverá permitir a inclusão. Caso contrário, deverá mostrar a mensagem CLIENTE NÃO CADASTRADO e abrir uma tela que permita o cadastramento. O programa deverá mostrar, ao final, todas as contas cadastradas.

A função de cadastro que eu fiz está correta ?

Alguma ideia para fazer as outras duas funções ?


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void cadastrar(FILE *arquivo);
typedef struct registro{
char nome[30];
int num_cliente, num_conta;
float tel, saldo;
char endereco[30];
}dados;

int main()
{
int op;
FILE *arquivo;
while(op != 4){
printf("(1) Cadastrar \n");
printf("(2) Editar dados \n");
printf("(3) Ver \n");
printf("(4) Sair \n");
printf("Digite uma opcao ");
scanf("%d",&op);
switch(op){
case 1:
cadastrar(arquivo);
break;
case 2:

break;
case 3:

break;
case 4:
exit(0);
break;
}
fclose(arquivo);
}
system("PAUSE");
return 0;
}
void cadastrar(FILE *arquivo){
dados cliente;
if((arquivo = fopen("arquivo.txt","wt")) == NULL){
printf("Erro ao abrir o arquivo\n");
exit(0);
}
else{
printf("Digite o nome \n");
scanf("%s",cliente.nome);
printf("Digite o codigo \n");
scanf("%d",&cliente.num_cliente);
printf("Digite o telefone \n");
scanf("%f",&cliente.tel);
printf("Digite o endereco \n");
scanf("%s",cliente.endereco);
fprintf(arquivo, "%s \n", cliente.nome);
fprintf(arquivo, "%d \n", cliente.num_cliente);
fprintf(arquivo, "%f \n", cliente.tel);
fprintf(arquivo, "%s \n", cliente.endereco);
}
fclose(arquivo);
}

Link para o comentário
Compartilhar em outros sites

Consegui fazer a função cadastrar, como posso fazer a função para editar o arquivo ?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void cadastrar(FILE *arquivo);

typedef struct{
char nome[30];
int num_cliente, num_conta;
float saldo;
char tel[11];
char endereco[30];
}dados;

int main()
{
int op;
FILE *arquivo;
while(op != 4){
printf("(1) Cadastrar \n");
printf("(2) Editar dados \n");
printf("(3) Ver \n");
printf("(4) Sair \n");
printf("Digite uma opcao ");
scanf("%d",&op);
switch(op){
case 1:
cadastrar(arquivo);
break;
case 2:

break;
case 3:

break;
case 4:
exit(0);
break;
}
}
system("PAUSE");
return 0;
}
void cadastrar(FILE *arquivo){
dados cliente;
int i;
getchar();
arquivo = fopen("arquivo.txt","w+");
printf("Digite o nome \n");
scanf("%s", cliente.nome);
printf("Digite o codigo \n");
scanf("%d",&cliente.num_cliente);
printf("Digite o telefone \n");
scanf("%s",&cliente.tel);
printf("Digite o endereco \n");
scanf("%s",cliente.endereco);
fprintf(arquivo, "%s \n", cliente.nome);
fprintf(arquivo, "%d \n", cliente.num_cliente);
fprintf(arquivo, "%s \n", cliente.tel);
fprintf(arquivo, "%s \n", cliente.endereco);
fclose(arquivo);
}

Link para o comentário
Compartilhar em outros sites

a logica de editar um arquivo e algo um pouco mais complicado devido ao seguinte fato... você nao pode simplesmente dar um backspace e colocar algo no lugar... para resolver esse problema existem varias formas... você pode carregar tudo pra memoria e trocar a informação que te interessa... ou você pode usar o sisteminha de copia de arquivo... ai cabe a você... mas antes de se preocupar com a edição... faz uma funcao ai que imprime o conteudo de TXT todo na tela...

Link para o comentário
Compartilhar em outros sites

Erro na linha 47: 'count' undeclared

#include <stdio.h>
#include <stdlib.h>

#define MAX 10
struct cliente
{
int num_cliente;
char nome[30];
int tel;
char endereco[50];
}cliente[MAX];
struct conta
{
int num_conta;
float saldo;
}conta[MAX];
int verifica(int num);
int sair_salvar(int count, int contador);
void exibir();
void incluir();
void cadastrar();
int main()
{
int op;
while(op != 4){
printf("(1) Cadastrar cliente \n");
printf("(2) Incluir saldo \n");
printf("(3) Ver contas \n");
printf("(4) Sair \n");
scanf("%d",&op);
switch(op){
case 1:
cadastrar();
break;
case 2:
incluir();
break;
case 3:
exibir();
case 4:
sair_salvar(count, contador);
break;
}
}
system("PAUSE");
return 0;
}
void cadastrar(){
char tecla = 's';
int i;
int count = 0;
for(i=0;i<MAX;i++){
printf("Digite o codigo \n");
scanf("%d",&cliente[i].num_cliente);
if(verifica(cliente[i].num_cliente)){
printf("Cliente ja cadastrado \n");
incluir();
}
else{
printf("Digite o nome \n");
scanf("%s",&cliente[i].nome);
printf("Digite o telefone \n");
scanf("%d",&cliente[i].tel);
printf("Digite o endereco \n");
scanf("%s",&cliente[i].endereco);
}
count++;
printf("Digite enter para cadastrar outro cliente ou s para sair \n");
tecla = getch();
if(tecla == 's')
break;
}
}
void incluir(){
int cod;
printf("Digite o codigo \n");
scanf("%d",&cod);
int i, contador = 0;
for(i=0;i<MAX;i++){
if(!verifiva(cod)){
printf("Digite o numero da conta \n");
scanf("%d",&conta[i].num_conta);
printf("Digite seu saldo \n");
scanf("%f",&conta[i].saldo);
contador++;
}
else{
printf("Codigo errado \n");
}
}
}
void exibir(){
int cod;
int i;
printf("Digite o codigo \n");
scanf("%d",&cod);
if(verifica(cod)){
printf("Codigo errado \n");
}
else{
for(i=0;i<MAX;i++){
if(cod == cliente[i].num_cliente){
printf("Nome: %s \n",cliente[i].nome);
printf("Telefone: %d \n",cliente[i].tel);
printf("Endereco: %s \n",cliente[i].endereco);
}
}
}
}
int sair_salvar(int count, int contador){
FILE *fp;
fp = fopen("arquivo.txt","w+");
int i;
for(i=0;i<count;i++){
fprintf(fp,"\n\n DADOS DO CLIENTE \n\n");
fprintf(fp,"Codigo: %d \n",cliente[i].num_cliente);
fprintf(fp,"Nome: %s \n",cliente[i].nome);
fprintf(fp,"Telefone %d \n",cliente[i].tel);
fprintf(fp,"Endereco: %s \n",cliente[i].endereco);
}
for(i=0;i<contador;i++){
fprintf(fp,"\n\n DADOS DA CONTA \n\n");
fprintf(fp,"Numero da conta: %d \n",conta[i].num_conta);
fprintf(fp,"Saldo: %f \n",conta[i].saldo);
}
exit(0);
}
int verifica(int num){
int i;
for(i=0;i<MAX;i++){
if(num == cliente[i].num_cliente){
return 0;
}
else {
return 1;
}
}
}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...