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

JoaoNascimento

Escrever ficheiro mas excluir primeira linha

Recommended Posts

pinguim

Que queres dizer com excluir?

Por uma linha em branco?


"Rather than continuing to seek the truth, simply let go of your views" - David RossC, C++, C#, Pascal

Share this post


Link to post
Share on other sites
pinguim

Mas não estas a falar de um ficheiro de texto, pois não?

Presumi que estivesses a falar de um ficheiro de texto


"Rather than continuing to seek the truth, simply let go of your views" - David RossC, C++, C#, Pascal

Share this post


Link to post
Share on other sites
Baderous

Fazes 1 fgets só para essa linha, mas não executas nenhuma acção particular sobre a mesma.

Share this post


Link to post
Share on other sites
pinguim

então eh mt simples, e já te responderam...

isso vai por o teu cursor na linha seguinte (2a linha)

tens até a função fseek(), que te pode ajudar no que toca a posicionares-te num certo ponto do ficheiro, mas neste caso não vale a pena


"Rather than continuing to seek the truth, simply let go of your views" - David RossC, C++, C#, Pascal

Share this post


Link to post
Share on other sites
JoaoNascimento

O meu codigo é o seguinte?

oid ler_dados_fich(DADOS *uc, int num)
{
char cabecalho[1000];
int i=0;
FILE *pfdados;

pfdados=fopen("dados_ucs_070410.txt","r");

if(pfdados==NULL)
{
	printf("Erro ao abrir o ficheiro! \n");
	system("pause");
}

fscanf(pfdados,"[^\n]\n",cabecalho);
//printf("%s\n",cabecalho);
for (i=0;i<num;i++)
    {
	fscanf( pfdados , "%[^\t]\t%d\t%d\t%[^\t]\t%d\t%[^\t]\t%d\t%[^\t]\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\n",uc[i].curso,&uc[i].ano,&uc[i].semestre,uc[i].nomeuc,&uc[i].ects,uc[i].area_cientifica,&uc[i].opcional,uc[i].doc_res,&uc[i].docentes,&uc[i].turm_t,&uc[i].turm_tp,&uc[i].turm_p,&uc[i].turm_pl,&uc[i].turm_ac,&uc[i].turm_ot,&uc[i].turm_s,&uc[i].t,&uc[i].tp,&uc[i].p,&uc[i].pl,&uc[i].ac,&uc[i].ot,&uc[i].s);
}
fclose(pfdados);
}

Já fiz como disseram mas continua a apresentar lixo no ficheiro de saida....

Share this post


Link to post
Share on other sites
pinguim

Eu não vejo nada que escreva no teu ficheiro, portanto não da para saber isso la muito bem...


"Rather than continuing to seek the truth, simply let go of your views" - David RossC, C++, C#, Pascal

Share this post


Link to post
Share on other sites
JoaoNascimento

Pois peço dsclpa este é a função que le um ficheiro....

void all_bd(DADOS *uc, int num)
{
int i;
char nome[50];
FILE *pfdados;

fflush(stdin);
puts("Insira o nome com que quer gravar o ficheiro: "); gets(nome);

strcat(nome,".txt");

//Abertura do ficheiro
pfdados=fopen(nome,"w");

if( pfdados == NULL )
{
	printf("Erro de abertura\n");
}
else
{
	for (i=0;i<num;i++)
	{
		fprintf( pfdados ,"%s\t%s\t%s\t%d\t%d\t%s\t%f\t%d\t%d\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\n",uc[i].curso, uc[i].nomeuc, uc[i].area_cientifica, uc[i].ects, uc[i].opcional, uc[i].doc_res, uc[i].docentes, uc[i].ano, uc[i].semestre, uc[i].turm_t, uc[i].turm_tp, uc[i].turm_p, uc[i].turm_pl, uc[i].turm_ac, uc[i].turm_ot, uc[i].turm_s, uc[i].t, uc[i].p,uc[i].tp, uc[i].pl, uc[i].ac, uc[i].ot, uc[i].s);						
	}
}
puts("Obrigado\n");
system("pause");

}

Aqui sim é o que escreve

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.