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

Ziwdon

[RESOLVIDO][Problema] printf atrasado!

4 mensagens neste tópico

Boas,

Tenho o seguinte:

int sec=3;
printf("Please wait...");
long int c1, c2; //time variables
time(&c1); //get current time
while (1) {
   time(&c2);
   if (difftime(c2, c1) >= sec) //difftime() returns time difference in seconds
      break;
}
printf("done!");

Supostamente, o meu output seria:

Please wait...{waits 3 seconds}done!

Contudo, o meu output é:

{waits 3 seconds}Please wait...done!

O "Please wait..." deveria aparecer antes  da pausa e não depois.

Alguém sabe como posso resolver?

Obrigado

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aquilo que mandamos escrever vai para um buffer intermédio. Só quando esse buffer é "despejado" no standard output é que vemos as mensagens. Acho que nesse caso a primeira mensagem está a ficar retida no buffer.

No meu pc dá como tu queres, tenho ideia que quando há um \n o conteudo do buffer é logo mostrado no ecrã. Não fazes nenhum \n, experimenta fazer

printf("Please wait...");
fflush(stdout);

Mas não tenho a certeza que funcione :/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aquilo que mandamos escrever vai para um buffer intermédio. Só quando esse buffer é "despejado" no standard output é que vemos as mensagens. Acho que nesse caso a primeira mensagem está a ficar retida no buffer.

No meu pc dá como tu queres, tenho ideia que quando há um \n o conteudo do buffer é logo mostrado no ecrã. Não fazes nenhum \n, experimenta fazer

printf("Please wait...");
fflush(stdout);

Mas não tenho a certeza que funcione :/

Resultou! :thumbsup:

Muito obrigado mogers.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:thumbsup:

Esqueci-me de dizer que essa função "despeja" (flush) o conteudo do tal buffer (associado ao stdout) para o ecrã (o standard output neste caso é o ecrã). Mas não tinha a certeza se funcionava

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora