1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

ajuda c

Discussão em 'Programação' iniciada por Me and you, 9 de Abril de 2007. (Respostas: 28; Visualizações: 2545)

  1. Me and you

    Me and you Power Member

    boas tou a começar a aprender c, só que já tou com dúvidas :S . pus o seguinte código no dev c++
    #include <stdio.h>

    int main()
    {
    printf("This is output from my first program!\n");
    return 0;
    }
    e carreguei na opção compile e run, e abriu uma janela do dos e desapareceu rapidamente, nem deu tempo para ver se estava la escrito o k eu pus no código.
    isto é normal n se conseguir ver o k se escreve :S?
     
  2. HecKel

    HecKel The WORM

    Escreve getch(); antes do return 0;

    É normal isso acontecer, basicamente o programa escreve e termina logo, não tens nada para o bloquear, com o getch o programa fica à espera de um carácter inserido pelo utilizador, só termina quando carregares numa tecla qualquer.

    Espero que te ajude ;)

    abraços, HecKel
     
  3. Me and you

    Me and you Power Member

    obrigado heckel, já pus o getch(), só que me dá um erro: getch undeclared first use this function
    o código que pus foi:
    #include <stdio.h>

    int main()
    {
    printf("This is output from my first program!\n");
    getch();
    return 0;
    }
     
  4. El_UnO

    El_UnO 1st Folding then Sex

    Falta-te o #include <curses.h>
     
  5. Me and you

    Me and you Power Member

    ponho depois do int main() ?
     
  6. HecKel

    HecKel The WORM

    sorry about that :S

    Não me lembrei de olhar para os includes, mas um search no google resolvia-te isso em segundos :P

    abraços, HecKel
     
  7. alph

    alph Power Member

    Em vez do getch(); da malévola curses.h, usa o getchar(); que é da stdio.h, e funciona. :)
     
  8. MaxDamage

    MaxDamage Power Member

    basta ser getchar(), e nao precisa de adicionar mais bibliotecas

    edit: o alph foi mais rapido :P
     
  9. Me and you

    Me and you Power Member

    obrigado a todos :bounce:
    agr que reparo, deu com aquele exemplo mas com este n :(
    #include <stdio.h>

    int main()
    {
    int b;
    printf("Enter a value:");
    scanf("%d", &b);
    if (b < 5)
    printf("The value is negative\n");
    getchar();
    return 0;
    }
    aparece o enter a value mas depois sai ,mesmo que eu coloque um numero menor que 5. :S
     
    Última edição: 9 de Abril de 2007
  10. LumpyNutz

    LumpyNutz Power Member

    Antes do getchar() experimenta a colocar fflush(stdin); que serve para limpar o buffer do teclado.
    Ja deve funcar assim, pk o getchar() devia tar a aproveitar um caracter do buffer.
     
  11. Me and you

    Me and you Power Member

    deu!!!!
    obrigadão lumpynutz:)
     
  12. Me and you

    Me and you Power Member

    boas,
    surgiu-me outra dúvida:
    qd ponho o código
    #include <stdio.h>

    int main()
    {
    int a;
    a = 1;
    while (a < 1000)
    {
    printf("%d\n", a);
    a = a + 1;
    }
    fflush(stdin);
    getchar();
    return 0;
    }

    deviam aparecer todos os numeros desde 1 ate 999 mas aparecem desde o 701 ate 999. pk?
    se eu puser a < 100 ja aparecem todos.
     
  13. Warrior

    Warrior Power Member

    Primeiro vou-te explicar porque motivo usaste o fflush(stdin); :

    Ao fazeres "scanf("%d", &b);", a variável "b" ficou com o valor inserido. Contudo, tu no teclado fizeste, por exemplo "5 <enter>". O getchar estava a recolher o <enter>, e por isso avançava.
    O "fflush(stdin);", limpa o buffer do teclado, ou seja, o enter, e obriga o getchar e pedir um caracter novo.
    Atenção que o fflush não está definido o seu funcionamento com o buffer de entrada, de modo que usar isso é um mau hábito de programação.

    --


    Não te aparecem todos os números porque a consola apaga os comandos mais antigos. Não te preocupes que eles estão todos a ser escritos.
     
  14. alph

    alph Power Member

    Um truquezinho para ires aprendendo. :)

    Se quiseres incrementar uma variável um certo número podes fazer:
    Código:
    a += 1;
    Que é igualzinho a:
    Código:
    a = a + 1;
    Ou ainda podes fazer:
    Código:
    a++;
    Mas neste caso serve apenas para aumentar a em 1. Enquanto que nos outros serve para aumentar a em qualquer número que queiras.

    Isto funciona também para subtracções, multiplicações e divisões. Experimenta um pouco. :)
     
  15. HecKel

    HecKel The WORM

    ó alphidio, julgo que isso já é C++, ele está a programar em C ;)
     
  16. alph

    alph Power Member

    Nop, vem de C isso. :) Já te repreendi no Google Talk!
     
  17. MadOnion

    MadOnion Folding Member

    O henckele às vezes tem umas saídas assim :lol:
     
  18. HecKel

    HecKel The WORM

    /me foge :P

    Por acaso ia mesmo apostar que isso só apareceu no C++, mas os geeks já se pronunciaram :205:

    Vivendo, aprendendo :p

    abraços, HecKel
     
  19. Me and you

    Me and you Power Member

    boas, obrigado pelas sugestões. mas se dizem que o fflush(stdin) n se deve usar, o k utilizo?
    e que tipo no site que tou a aprender os exemplos de programas fecham todos a janela rapidamente e nem dá para ver :S
     
  20. heeven

    heeven Power Member

    e o system pause que aparece no fim do main nao costuma manter a janela do programa aberta? axo k o dev c++ trazia isso. e penso que servia para isso. penso eu :/
     

Partilhar esta Página