Krazzi Posted April 16, 2009 at 10:43 PM Report #257200 Posted April 16, 2009 at 10:43 PM Boas. Tenho um problema com tipos abstractos de dados. Num programa que estou a tentar fazer ele nao consegue ir buscar uma variavel que se encontra num ficheiro.h . Como e que consigo fazer isso? O exemplo e no ficheiro.h typedef struct docente { char Nome[MAX_CHAR]; char Email[MAX_CHAR]; nota avaliacao; int Numero; int numc; }infoDocente, *apDocente; no main.c sscanf(line,"%c %d",&Nome,&Numero)!=ARG_USED Ele diz que o Nome e Numero nao foi declarado.
pedrosorio Posted April 16, 2009 at 10:56 PM Report #257202 Posted April 16, 2009 at 10:56 PM E não foram. Não existem variáveis com esses identificadores. A estrutura que defines tem dois dos membros com esses nomes, mas não tens quaisquer variáveis assim definidas. Para fazeres o que queres no main.c terias que ter algo do género: infoDocente prof1; sscanf(line,"%s %d",prof1.Nome,&(prof1.Numero)); Repara: tens que declarar uma estrutura do tipo que queres. No sscanf tens que usar %s e não %c porque queres ler uma string, suponho. (E não precisas de & em prof1.Nome já que Nome é um apontador para o primeiro caracter do vector de caracteres). Não respondo a dúvidas por mensagem.
Krazzi Posted April 16, 2009 at 11:03 PM Author Report #257204 Posted April 16, 2009 at 11:03 PM mas no exemplo que deste o prof1 encontra-se no struct?
pedrosorio Posted April 16, 2009 at 11:18 PM Report #257205 Posted April 16, 2009 at 11:18 PM Não. Quando defines uma estrutura estás apenas a definir um novo tipo de dados. Não estás a criar variáveis novas. Eu estou a criar uma variável nova que é do tipo da estrutura que tu definiste e dá pelo nome de prof1. Se calhar tens que rever as estruturas... Não respondo a dúvidas por mensagem.
bruno1234 Posted April 17, 2009 at 12:54 AM Report #257212 Posted April 17, 2009 at 12:54 AM Para declarar uma instancia do docente n é preciso fazer uns mallocs? O meu C anda bastante enferrujado. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos
pedrosorio Posted April 17, 2009 at 09:24 AM Report #257224 Posted April 17, 2009 at 09:24 AM Só se quiseres ter uma função que crie docentes e usá-los depois fora da função. Isto porque, a partir do momento em que defines o que é aquela estrutura, podes declarar variáveis dela como se fossem de outro tipo qualquer. Não respondo a dúvidas por mensagem.
Krazzi Posted April 17, 2009 at 02:53 PM Author Report #257302 Posted April 17, 2009 at 02:53 PM Eu tenho uma estrutura que define um so docente e outra o conjunto dos docente......entao prof1 e um docente e o teu infoDocente e o conjunto dos varios prof's certo?
pedrosorio Posted April 17, 2009 at 03:29 PM Report #257310 Posted April 17, 2009 at 03:29 PM Não. Aquando da definição da estrutura, ele fez dois typedefs. - infoDocente que é o tipo da estrutura, ou seja, equivalente a struct docente - apDocente que é o tipo de apontador para a estrutura, ou seja, equivalente a struct docente * Eu limitei-me a declarar uma variável (chamada prof1) do tipo da estrutura, para lhe mostrar que precisava de ter uma variável para poder guardar o nome e o número. Não respondo a dúvidas por mensagem.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now