1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.
  2. Informação: Pela 0:30 desta Sexta-feira (9 de Dezembro, 23:30 de Quinta-feira nos Açores) o Fórum e restantes sites da ZWAME vão estar offline para manutenção durante cerca de 1h30.
    Se necessário faremos actualizações via Twitter e Facebook.
    Remover anúncio

Alguem me explica pq é que o programa me come uma letra?

Discussão em 'Programação' iniciada por [N], 12 de Março de 2006. (Respostas: 2; Visualizações: 881)

  1. [N]

    [N] Power Member

    saudações. fiz este exercicio para uma cadeira:



    no entanto come me a primeira letra que introduzo no titulo autor e editor.
    Agradeço desde já a quem ajudar =)
     
  2. FASC

    FASC Power Member


    Experimeta fazer uns "flush"'s em vez dos getchar. Isso pode estar a comer com enters ou algo assim do género. Aliás, eu até aposto que são esses getchar que te estão a comer as primeiras letras... O fgets não te deixa nada para fazeres flush. substitui o getchar por flush e vê lá se não funciona.


    Hugs.


    EDIT: eu tinha razão! ;) Sem os getchar já funciona. Quanto muito só precisarias do primeiro getchar() uma vez que tens um scanf vindo da função main, que te deixa em espera um /n do enter ao inserir um número. Eu para evitar estas situções nunca trabalho com scanf, mas com fgets e depois converto para int através de funções minhas.

    EDIT2: para te resolver já o problema: tira todos os getchar e no lugar o primeiro getchar mete
    Código:
    fflush(stdin);
     
    Última edição: 13 de Março de 2006
  3. [N]

    [N] Power Member

    viva o fgets :D
     

Partilhar esta Página