Ir ao conteúdo
  • Cadastre-se

Problema com o tipo FILE


Mari1991

Posts recomendados

Olá, pessoal

Estou desenvolvendo um exercício da facul e tem um trecho que necessita gravar determinados dados em um arquivo. Fiz assim:

#include <stdio.h>

int id = 0;

void InserePaciente(paciente p)
{
[COLOR="Red"]FILE *arq;[/COLOR]

p.id = id++;
scanf("%s\n%d\n%d\n%d\n%f\n%f", p.nome, &p.ano, &p.sexo, &p.religiao, &p.peso, &p.altura);

fopen("ArquivoTeste.txt","a+");

fprintf(arq,"%d\n%s\n%d\n%d\n%d\n%f\n%f\n",p.id, p.nome, p.ano, p.sexo, p.religiao, p.peso, p.altura);

fclose(arq);
}

Porém, na linha em vermelho está dando os seguintes erros e não estou entendendo o que está errado:

error: ‘FILE’ undeclared (first use in this function)

note: each undeclared identifier is reported only once for each function it appears in

error: ‘arq’ undeclared (first use in this function)

Alguém saberia me dizer se para usar FILE tem que declarar mais alguma biblioteca ou se o problema é outro???

Desde já agradeço,

Mariana

Link para o comentário
Compartilhar em outros sites

Como você espera que fopen saiba qual ponteiro vai conter o endereço gerado por ele, escrevendo isso:

fopen("ArquivoTeste.txt","a+");

???

Você tem que atribuir o resultado a arq:

arq=fopen("ArquivoTeste.txt","a+");

Se isso não resolver, então tem algum outro erro em outro trecho do seu programa...

Link para o comentário
Compartilhar em outros sites

Como você espera que fopen saiba qual ponteiro vai conter o endereço gerado por ele, escrevendo isso:

fopen("ArquivoTeste.txt","a+");

???

Calma cara, não precisa estressar, isso foi mais um erro de digitação mesmo, já havia até arrumado no programa antes, mas continua ocorrendo o problema, pois ele estoura na linha que está em vermelho. O programa também é só isso mesmo, eu só não coloquei a strct paciente que seria irrelevante e a função main (que está vazia)

Obrigada,

Mariana

Link para o comentário
Compartilhar em outros sites

#include <stdio.h>

// Tipo que define o sexo do paciente.

typedef enum {mas, fem} tipo_sex;

// Tipo que define a religião do paciente.

typedef enum {agnostico, ateu, budista, confucionista, cristao, espiritualista, indu, islamico, judeu,

taoista, tribal, xintoista, outras} tipo_rel;

// Tipo que define o registro do paciente.

typedef struct {

int id;

char nome[200];

int ano;

tipo_sex sexo;

tipo_rel religiao;

float peso;

float altura;

} paciente;

int id = 0;

// Função insere um novo paciente p no arquivo <ra>.txt ou <ra>.bin.

void InserePaciente(paciente p)

{

FILE *arq;

p.id = id++;

gets(p.nome);

scanf("%d\n%d\n%d\n%f\n%f", /*p.nome, */&p.ano, &p.sexo, &p.religiao, &p.peso, &p.altura);

arq = fopen("ArquivoTeste.txt","a+");

fprintf(arq,"%d\n%s\n%d\n%d\n%d\n%f\n%f\n",p.id, p.nome, p.ano, p.sexo, p.religiao, p.peso, p.altura);

fclose(arq);

}

int main(){

paciente p;

InserePaciente(p);

return 0;

}

Bom, por enquanto só tem isso mesmo D:

Se isso ajuda alguma coisa, eu estou usando o Code Blocks 10.05

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!