Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

dario1133

ficheiros

Recommended Posts

dario1133

considerando que a seguinte função é uma subfunção do main podem-me dizer se esta abertura do ficheiro está bem??

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

void ficheiro_viatura(int hi,int hf,int mi,int mf,int si,int sf, char matricula[20])
{


FILE *fp;
int hi,hf,mi,mf,si,sf;
char matricula[20];

fp=fopen("viatura.txt","a+");
if(fp==NULL){
	printf("Erro na abertura do ficheiro\n");
	exit(1);
else
	fprintf(fp,"Matricula:%s\n",matricula); 
	fprintf(fp,"Entrada:%d:%d:%d\n",hi,mi,si);
	fprintf(fp,"Saida:%d:%d:%d\n",hf,mf,sf);
	fprintf(fp,"********************\n");
	fclose(fp);
	printf("ficheiro ciado com sucesso\n);
}

obrigado

Share this post


Link to post
Share on other sites
asworm

Esta um bocado confuso,

void ficheiro_viatura(int hi,int hf,int mi,int mf,int si,int sf, char matricula[20])

int hi,hf,mi,mf,si,sf;

Porque estás a repetir as variaveis?


Got it?

Share this post


Link to post
Share on other sites
dario1133

e assim ja posso fazer??

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


void ficheiro_viatura(int hi,int hf,int mi,int mf,int si,int sf, char matricula[20])
{


FILE *fp;
fp=fopen("viatura.txt","a+");
if(fp==NULL){
	printf("Erro na abertura do ficheiro\n");
	exit(1);
else


	fprintf(fp,"Matricula:%s\n",matricula); 
	fprintf(fp,"Entrada:%d:%d:%d\n",hi,mi,si);
	fprintf(fp,"Saida:%d:%d:%d\n",hf,mf,sf);
	fprintf(fp,"********************\n");
	fclose(fp);
	printf("ficheiro ciado com sucesso\n);
}

Share this post


Link to post
Share on other sites
asworm

nao tenho bem a certeza, tou um bocado confuso com o VB, mas ja experimentas-te o código?


Got it?

Share this post


Link to post
Share on other sites
TheDark

No seguimento do que disse o Rui Carlos, falta-te fechar a chaveta do if. E não precisas do else, já que tens um exit no if.

Atenção ainda a que, do modo que tens o else, só o primeiro fprintf pertence ao bloco de execução do else. Para teres mais que uma instrução dentro do else, precisas de utilizar chavetas.


Desaparecido.

Share this post


Link to post
Share on other sites
asworm

no seguimento da minha resposta, aquelas variaveis declaradas 2 veses, dá erro?


Got it?

Share this post


Link to post
Share on other sites
pmg

no seguimento da minha resposta, aquelas variaveis declaradas 2 veses, dá erro?

Sim, é um erro (uma "constraint violation").

  6.9.1  Function definitions

[...]

  [#9] Each parameter has  automatic  storage  duration.  Its

  identifier  is an lvalue, which is in effect declared at the

  head of the compound statement that constitutes the function

  body  (and  therefore  cannot  be redeclared in the function

  body except in  an  enclosed  block).  The  layout  of  the

  storage for parameters is unspecified.

http://www.google.pt/search?q=n869.txt

Edit: o parágrafo acima, com a "constraint", é #9 no ficheiro que eu tenho no meu disco, mas #6 num ficheiro que o Google apresentou. Não sei porquê, nem se é um erro ... e se for um erro não sei qual está errado (ou até se estão os dois errados)


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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×

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.