Jump to content
ricardoaux

Ler até encontrar dois '\n'

Recommended Posts

ricardoaux

Boas

Como posso ler de um ficheiro texto e parar quando encontrar dois \n seguidos???

Tou a usar o fscanf.

Desde ja obrigado

Share this post


Link to post
Share on other sites
ricardoaux

while(!feof(fp)){

    //limpar o buffer

    memset(buffer, 0, 4096);

    fscanf(fp,"%[^\n]\n",buffer);

}

isto pára de ler ao 1º \n

Share this post


Link to post
Share on other sites
pmg

O fscanf 'e dificil de usar correctamente quando pretendes fazer validacao ao mesmo tempo.

Usa fgets

while (fgets(buf, sizeof buf, stdin)) {
  if (buf[0] == '\n') /* "\n\n" found */;
}


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
pmg

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
ricardoaux

job 2 page 2

Outra dúvida, como ler estes dois numeros, com o fscanf

quero guardar numa variavel job_id o 1º numero, numa page_id o 2º numero

Share this post


Link to post
Share on other sites
pmg

if (fscanf(stdin, "%d%d", &job_id, &page_id) != 2) /* deal with error */;

O formato "%d" ignora espacos (espacos, tabs, enters) antes do numero propriamente dito.

Mas e mais facil, principalmente se quiseres fazer validacoes, usar o fgets!


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
pmg

Ah! Nem tinha reparado nisso

if (fscanf(stdin, " job%d page%d", &job_id, &page_id) != 2) /* deal with error */;

Os espacos antes de job e page fazem o scanf "saltar" espacos (espacos, tabs, enters)


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

×
×
  • Create New...

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.