3
respostas

Posição do ponteiro no console

Pessoal como eu faço para determinar a posição de uma determinada escrita dentro do console ?

3 respostas

Oi Lucas,

O printf é buffered. Isso significa que quando você chama-lo, não será imediatamente impresso. Em vez disso, ele armazenará o que você disse para imprimir e imprimirá automaticamente quando houver texto suficiente armazenado no buffer.

Se você usar um \n após o seu comando print, ele imprimirá automaticamente todo o buffer (é por isso que a última chamada para printf imprime tudo). Para o seu caso, você pode querer usar um flush manual com fflush:

printf("Enter int: "); fflush(stdout);
scanf("%d",&i);
printf("Hello %d\n",i);

Tecnicamente, é o stdout que é armazenado em buffer, mas é mais fácil pensar nisso como printf sendo armazenado em buffer neste momento.

Eu quero fazer uma tela dinâmica onde mostra o tempo e os pontos do jogador, no entanto eu quero posiciona-las no canto superior direito da tela. eu não vou colocar espaço até ficar na posição que quero. Não há nada na linguagem C onde eu possa posicionar dentro do console onde eu quero que a escrita comece ? Essa é a dúvida. Posicionar o cursor da escrita do printf.

A linguagem C em si não tem noção de uma tela com um cursor. Você terá que usar algum tipo de biblioteca que forneça esse suporte. curses é a biblioteca mais conhecida e amplamente disponível para controle de terminal.