Jump to content
Sign in to follow this  
Alex16

Programa em C dá erro podem dar uma ajuda?

Recommended Posts

Alex16

bom, tenho este programa que comecei a desenvolver a uns dias atrás, mas dá erro eu sou nova na área de programação e não percebo na muito bem.

ENUNCIADO:

Escreva um pequeno programa que implemente uma base de dados, que terá a capacidade de:

- guardar dados de uma nova pessoa:

•  Nome (40 caracteres)

•  Morada (60 caracteres)

•  Localidade (25caracteres)

•  Codigo_p (8 caracteres)

•  Num_tel (9 caracteres)

- ler os dados de todas as pessoas guardadas em disco e mostrá-los um a um.

O programa deverá usar um menu com as seguintes opções:

Menu

N- Introduz dados de nova pessoa

L- Listar dados de todas as pessoas

S- Sair

PROGRAMA:

#include <stdio.h>
#include <stdlib.h>
#define Fich "dados.dat"
char opc;
char p;
char dados;

struct pDados
{
int p;
char Nome [40];
char Morada [60];
char Localidade [25];
int CodigoPostal[8];
int Telemovel [9];
}

main ()
{

FILE *arq;
int p;
char dados;
char Nome;


arq=fopen("dados.dat", "ab");
dados &p;
printf("Digite o Nome: ");


gets (p.Nome);



printf("Digite a Morada: ");
gets (p.Morada);
printf("Digite a Localidade: ");
gets (p.Localidade);
printf("Digite o Codigo Postal: ");
gets (p.Codigo Postal);
printf("Digite o Numero de Telemovel: ");
gets (p.Telemovel);

FWRITE(&p, sizeof (dados), 1, arq);
FCLOSE(arq);
return 0;

}


Function Menu ()
Printf ("\n Menu \n\n ");
Printf ("\n N - Intrudizir dados \n\n ");
Printf ("\n L - Leitura dos dados \n\n ");

Printf ("\n S - Sair \n\n ");

Printf("Qual é a opção? ");
Scanf ("%c" , opc);

Do {

Switch (opc)
{
Case 'n':
Case 'N': Introduzir dados de uma nova pessoa ()

Case 'l':
Case 'L': Listar dados ()

Case 's':
Case 'S': exit(1);

default

Printf("Erro!!");
While (opc!='N') or (opc!= 'n');
}

Function Listar Dados ()

int main ()
{
FILE*arq;
arq=FOPEN("dados.txt", "rb");
dados p;
while (FREAD (&p, sizeof(dados), 1, arq) !=o)
{
Printf ("Nome: %c ", p.nome);
Printf ("Morada: %c ", p.morada);
Printf ("Localidade: "%c , p.localidade);
Printf ("codigo Postal: %d ", p.nome);
Printf ("Telemovel: %d ", p.telemovel);
}
FCLOSE (arq);
Return o;

int main ()
{
FILE *F;
FCLOSE(F);
}

Vai dar erro logo aqui " gets (p.Nome); "

espero que possam dar uma ajuda

Edit: GeSHi adicionado (pmg)

Share this post


Link to post
Share on other sites
HappyHippyHippo

epa ... eu ja vi esse enunciado em algum lugar....

ve bem o código ...

int p;
...
gets (p.Nome);


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Alex16

é provável, é um trabalho final de programação que estou a realizar, e tb já me pediram ajuda em algo parecido mas era para cd's  ou lista telefonica mas ja para resolver e chegar ate aqui foi oque foi :s

Share this post


Link to post
Share on other sites
pmg

Tens tres main? Ou fui eu que dei cabo do programa quando adicionei o GeSHi, e o que agora é um bloco de codigo era suposto serem 3 blocos?

Reve o teu post, corrige se necessario e aceita as minhas desculpas.

Usas muitos identificadores que nao existem em C (FWRITE, FCLOSE, Printf, Scanf, Switch, Case, While, Fopen, FREAD). Corrige isso tambem.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
HappyHippyHippo

é provável, é um trabalho final de programação que estou a realizar, e tb já me pediram ajuda em algo parecido mas era para cd's  ou lista telefonica mas ja para resolver e chegar ate aqui foi oque foi :s

estas a dizer que não só não é o teu primeiro programa como te pedem ajuda para resolver problemas ????  😲


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Alex16

pois, e afinal ja vi tb um enunciado igualzinho ao meu s:

estou tao confusa!

#include <stdio.h>
#include <stdlib.h>
#define Fich "dados.dat"
char opc;
char p;
char dados;

struct Dados
{    
int p;
char Nome [40];
char Morada [60];
char Localidade [25];
int CodigoPostal[8];
int Telemovel [9];
}

main ()

   
FILE *arq;
int p;
char dados;
char Nome;
char Morada;
char Localidade;
int CodigoPostal;
int Telemovel;

arq=fopen("dados.dat", "ab");
dados &p;

printf("Digite o Nome: ");
scanf ("%c", Nome);
printf("Digite a Morada: ");
scanf ("%c", Morada);
printf("Digite a Localidade: ");
scanf ("%c", Localidade);
printf("Digite o Codigo Postal: ");
scanf ("%d", CodigoPostal);
printf("Digite o Numero de Telemovel: ");
scanf("%d", Telemovel);

FWRITE(&p, sizeof (dados), 1, arq);
FCLOSE(arq);
return ;

}


Function Menu ()
Printf ("\n Menu \n\n ");
Printf ("\n N - Intrudizir dados   \n\n ");
Printf ("\n L - Leitura dos dados   \n\n ");

Printf ("\n S - Sair  \n\n ");

Printf("Qual é a opção?  ");
Scanf ("%c" , opc);

Do {

Switch (opc)
{
Case 'n':
Case 'N': Introduzir dados de uma nova pessoa ()

Case 'l':
Case 'L': Listar dados ()

Case 's':
Case 'S': exit(1);

default

Printf("Erro!!");
While (opc!='N') or (opc!= 'n');
}

Function Listar Dados ()

int main ()
{
FILE*arq;
arq=FOPEN("dados.txt", "rb");
dados p;
while (FREAD (&p, sizeof(dados), 1, arq) !=o)
{
Printf ("Nome:  %c ", p.nome);
Printf ("Morada:  %c ", p.morada);
Printf ("Localidade:  "%c , p.localidade);
Printf ("codigo Postal:  %d ", p.nome);
Printf ("Telemovel:  %d ", p.telemovel);
}
FCLOSE (arq);
Return o;

int main ()
{
FILE *F;
FCLOSE(F);
}

agr da erro arq=fopen("dados.dat", "ab");

OMG!

Share this post


Link to post
Share on other sites
pikax

Essa indentação está... quer dizer, nem existe sequer...

Esse código tem tanto erro junto, que....

Já agora isso é suposto estar em C? é que vejo "Function Listar Dados ()","main ()", etc...


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
HappyHippyHippo

epá ... o código está num estado que só posso recomendar uma única coisa :

recomeça com um "Hello, World!" ...

faz uma linha de cada vez, compila e ve o que o compilador diz : se não se queixa, porreiro, se disser algo, corrige.


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.