erro na compilação [RESOLVIDO]

1. erro na compilação [RESOLVIDO]

Rafael Alves Lagisck
lagisck

(usa Debian)

Enviado em 17/01/2013 - 13:50h




  


2. struct

Rafael Alves Lagisck
lagisck

(usa Debian)

Enviado em 17/01/2013 - 13:57h

queria que vc desse um olhada nesse codigo:

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

struct tpcadastro
{
char nome[30];
char setor[30];
};
void cadastrar(FILE *arq)
{
tpcadastro r;
arq=fopen("cadastro.dat","ab+");
printf("Digite o nome do funcionário:");
gets(r.nome);
printf("Digite o setor da empresa:");
gets(r.setor);
fclose(arq);
}
int main(void)
{
FILE *arq;
cadastrar(arq);
}

Quando vo compilar
ele da esses erros

E:\Rafael\Algoritmos C\ASTECA\ASTECA.c:13:5: error: unknown type name 'cadastro'
E:\Rafael\Algoritmos C\ASTECA\ASTECA.c:16:11: error: request for member 'nome' in something not a structure or union
E:\Rafael\Algoritmos C\ASTECA\ASTECA.c:18:11: error: request for member 'setor' in something not a structure or union

Se alguem poder ajudar agradeço


3. Re: erro na compilação [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 17/01/2013 - 14:15h

Se você estiver usando C, não pode omitir a palavra-chave struct na hora de declarar variáveis do tipo struct tpcadastro.


4. Re: erro na compilação [RESOLVIDO]

Rafael Alves Lagisck
lagisck

(usa Debian)

Enviado em 17/01/2013 - 14:32h

meu amigo nao entendi oq vc quis dizer
me explique melhor eu so lerdo :/


5. Re: erro na compilação [RESOLVIDO]

White Hawk
WhiteHawk

(usa Ubuntu)

Enviado em 17/01/2013 - 16:17h

Boa tarde.

Por favor, ao postar códigos, use as tags [ code ] e [ /code ].

Para que o código compile sem erros, faça a alteração abaixo:


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

typedef struct
{
char nome[30];
char setor[30];
} tpcadastro;

void cadastrar(FILE *arq)
{
tpcadastro r;
arq=fopen("cadastro.dat","ab+");
printf("Digite o nome do funcionário:");
gets(r.nome);
printf("Digite o setor da empresa:");
gets(r.setor);
fclose(arq);
}

int main(void)
{
FILE *arq;
cadastrar(arq);
}



6. Re: erro na compilação [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 17/01/2013 - 18:10h

Ou a sugestão anterior, ou o seguinte (reflexo de minha dica original -- eu não gosto de typedefs).

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

struct tpcadastro {
char nome[30];
char setor[30];
};

void cadastrar(FILE *arq){
struct tpcadastro r; /* AQUI: a palavra struct não pode ser omitida em C; poderia em C++ */
arq=fopen("cadastro.dat","ab+");
printf("Digite o nome do funcionário:");
gets(r.nome);
printf("Digite o setor da empresa:");
gets(r.setor);
fclose(arq);
}

int main(void){
FILE *arq;
cadastrar(arq);

return 0; /* AQUI: como main() retorna um int, você DEVE dizer que int é esse. */
}


Em tempo: gets() é péssima do ponto de vista de segurança. Ela foi finalmente removida da última versão do padrão do C (2011). Prefira usar fgets(), que é compatível com as versões anteriores do C, ou gets_s(), se você com certeza estiver usando um compilador compatível com o último padrão.


7. Re: erro na compilação [RESOLVIDO]

Rafael Alves Lagisck
lagisck

(usa Debian)

Enviado em 18/01/2013 - 08:24h

Obrigado assunto encerrado :D







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts