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

Linguagem C

Discussão em 'Programação' iniciada por sila, 17 de Agosto de 2007. (Respostas: 25; Visualizações: 4446)

  1. Olá a todos.

    estou a tentar aprender a programar em C, não está a ser facil...
    instalei o compilador Dev-C++, e tenho um livro sobre C.
    Mas não consigo ver o que programei, aparece uma janela, mas é muito rapido, não consigo ver nada.

    fiz:
    #include <stdio.h>
    main()
    {
    printf("Olá");
    }

    depois, Compilar e Executar

    preciso de uma ajudinha.
    :'(


    Obrigado.
     
  2. Corpsegrinder

    Corpsegrinder Banido

    de um modo grosseiro, tenta para já um getchar();
    depois do printf.

    outra hipotese é abrires uma linha de comandos, localizares o programa e executa-lo nessa mesma linha de comandos.
     
  3. HecKel

    HecKel The WORM

    Boas!

    Isso é um problema comum em quem está a iniciar-se na programação ;)

    Na verdade até é sinal que o programa está funcional, significa que começa e termina :P

    Para veres o que está a devolver, tens de mandar o programa parar.

    Vê nesta thread como fazer: problema em C

    HecKel
     
  4. Ok, funcionou.

    Usei o getchar(), mas porque "de um modo grosseiro"?
    Estou a fazer alguma coisa mal?
    tenho que por sempre o getchar()?

    Obrigado
     
  5. HecKel

    HecKel The WORM

    O getchar() é uma instrução que manda o programa esperar por um caracter, ou seja, espera que carregues numa tecla.

    Ele disse que é um modo grosseiro, porque para a tua aplicação não precisas disso para nada, ela funciona sem isso. No entanto para a poderes ver funcionar, dá jeito.

    Aliás, tu nem sequer precisas disso se executares o teu programa directamente pela consola. A consola só fecha quando é aberta pelo próprio programa, não quando o executas pela consola.

    Espero não te ter baralhado agora.

    HecKel
     
  6. xtr3me

    xtr3me Power Member

    Isso é um modo grosseiro, porque estás a arranjar um "truque" para isso funcionar como tu queres, quando a maneira natural e normal de funcionar, era como estava antes, ou seja, ele executa o programa e termina.

    Se quiseres que ele não te feche a janela mal acabe o programa, tens (ou pelo menos tens de arranjar maneira de fazer uma espera activa no processo ... que é o que esse getchar() faz ...).

    O getchar() é uma função de leitura de um caracter. Ele fica à espera que seja introduzido um e mal isso aconteça o programa continua.

    O que acontece é que, depois de ele fazer o print, fica à espera que introduzas um caracter e por isso continua a mostrar a janela. Mal o fazes, ele continua o programa e como não resta mais nada, ele acaba.
     
  7. Obrigado a todos,

    Já fiz o teste, e realmente funciomou perfeitamente.
    Estou a gostar da logica da linguagem.
     
  8. CoolMaster

    CoolMaster Power Member

    Já agora, a main deve retornar um int, 0 em sucesso e diferente de 0 em caso de erro. É boa pratica de programação seguir este padrão.

    A razão de isto existir tem fundamento, o que é retornado da main pode ser entendido como o aviso de que o programa fechou com sucesso ou devido a algum problema ocorreu um erro e não fazia sentido continuar a executar. Imagina que necessitas de especificar 2 parametros para correr o programa, só especificas um.. retornas da main com um valor diferente de 0. Desta forma o processo que estiver a correr o programa pode ver facilmente se o programa foi executado com sucesso ou não, podes inclusive retornar valores diferentes para diferentes tipos de problemas. Este tipo de coisas é muito comum nas UNIX shells em que (pelo menos na bash) a variavel ? tem o valor de retorno do ultimo programa e um shell script pode tomar uma acção diferente consoante o return value.

    (Um pequeno aparte)
     
    Última edição: 17 de Agosto de 2007
  9. Podias dar um pequeno exemplo com a propria linguagem, ???
    Int? desculpa mas estou a começar agora se poderes simplificar melhor.
    Obrigado.
     
  10. CoolMaster

    CoolMaster Power Member

    Ah, oops.. parece que me adiantei... espera até chegares as funções que já vais entender quando disse que a main por norma devia fazer return de um int :P
     
  11. hYpe

    hYpe [email protected] Member

    Um int e' um tipo de dados... integer (número inteiro).

    Se continuares a aprender C vais-te deparar com muitos mais tipos.

    Sempre que tivere dúvidas apita!
     
  12. snis

    snis Power Member

    usa um

    system("PAUSE");

    para parar..
     
  13. greatbunzinni

    greatbunzinni Power Member

    Código:
    #include <stdio.h>
    [COLOR=Red]int [/COLOR]main([COLOR=Red]void[/COLOR])
    {
        printf("Olá");
        [COLOR=Red]return 0;[/COLOR]
    }
    
    atenção às normas de C, pá ;)
     
  14. blueomega

    blueomega Power Member

    não sei porque, mas o sustem("PAUSE") nem sempre parece que da, pelo menos em c++ não parece dar sempre

    eu enquanto ando a testar cenas, meto antes do return uma nova variavel e um scanf, cin, la para de certeza
     
  15. O system("PAUSE") é uma chamada ao sistema operativo. Não funciona, por exemplo, no OS X.
     
  16. Qero iniciarme na programaçao

    Oi...e o seguint...vou iniciar 1 curso no secundario sobr programaçao....gstava d ja entrar preparad....ond

    posso aranjar o livro "linguagem c"?...alguem m pod dar umas dicas d como n iniciar nest lad da informatica?



    abraçs pa tds
     
  17. OubeLa

    OubeLa Power Member

    Em C++ também podes colocar isso dentro de um while (1). Não sei se em C também funciona. Se colocares dentro de um while (1) depois se quiseres terminar o programa podes sempre por um

    if (input == "EXIT")
    return 0;


    Acho que deu para perceber o que quis dizer.

    PS: Estava a falar em C++, mas como não sei C não tenho a certeza se também dá.
     
  18. greatbunzinni

    greatbunzinni Power Member

    E porque não fazer essa coisa fora do programa? Tipo, em vez de correr o próprio executável corre-se um guião que corre o executável. Eu presumo que a coisa é feita em windows, o que seria algo do tipo:

    Código:
    teste.exe
    pause
    
    Metias o IDE a correr o .bat em vez do .exe e resolvias o teu problema.
     
  19. edferreira

    edferreira Power Member


    o livro "linguagem C" de luis damas é muito bom para começar.
     
  20. snis

    snis Power Member

    yap, em c++ nao sei.. qto em c, sempre me resolveu os problemas ..

    uhmm nao era o caso dele..
    mas brigado , assim ja sei
     

Partilhar esta Página