Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

Gurzi

dica simples e util

Mensagens Recomendadas

Gurzi    2
Gurzi

estava a ler aqui um exercicio do Damas e achei curioso, para quem não tenha o Livro aqui fica uma boa dica.

#include <stdio.h>

main()
{
      char ch1,ch2;
      printf("Introduza um Caracter : ");
      scanf("%c",&ch1);
      printf("Introduza outro caracter:");
      scanf("%c",&ch2);
      printf("os caracteres introduzidos foram '%c' e '%c'\n",ch1,ch2);

Imaginem que introduzem no primeiro caracter C mal carregam enter o c reconhece o newline(enter) como um %c e por isso vos vai aparecer que os caracteres introduzidos foram c e ' ' .

DICA: O espaço em branco dentro de um scanf , indica a esta funçao para ler e ignorar todos os espaços em brancos,new lines e tabs que encontrar ou seja :

#include <stdio.h>

main()
{
      char ch1,ch2;
      printf("Introduza um Caracter : ");
      scanf("%c",&ch1);
      printf("Introduza outro caracter:");
      scanf(" %c",&ch2);
      printf("os caracteres introduzidos foram '%c' e '%c'\n",ch1,ch2);

um ' ' (space) antes do %c do segundo scanf faz ignorar o new line(enter) dado no  buffer do teclado ignora o enter.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
deathseeker25    6
deathseeker25

Estive a rever exactamente isso agora no livro do Damas. Na realidade é uma dica que poupa muitos possíveis problemas e dores de cabeça para iniciantes.

Cumps

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    309
Rui Carlos

sim.. ou então fflush(stdin);  ;)

o fflush(stdin); nem sempre funciona (aliás, comigo nunca funcionou), visto que no ANSI C, é uma função para ser aplicada a buffers de escrita, sendo indefinido o efeito em buffers de leitura.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
saramgsilva    2
saramgsilva

Boas,

um dica muito importante para programar em C, e que nos fazem perder muito tempo e paciência  :P

Acho ó que deves melhorar o título do tópico, ser mais expecifico.

bom trabalho

tofas

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Black Tiger III    0
Black Tiger III

Podem ser smpr um char

buffer=getchar();

isto e o k costumo usar e funciona bem :thumbsup:, tem o defeito de s declarar mais uma variavel

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


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade