Linguagem C

sila

Membro
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.
 
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.
 
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
 
Ok, funcionou.

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

Obrigado
 
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
 
Ok, funcionou.

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

Obrigado

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.
 
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:
Podias dar um pequeno exemplo com a propria linguagem, ???
Int? desculpa mas estou a começar agora se poderes simplificar melhor.
Obrigado.
 
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
 
Podias dar um pequeno exemplo com a propria linguagem, ???
Int? desculpa mas estou a começar agora se poderes simplificar melhor.
Obrigado.

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!
 
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
 
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á.
 
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.
 
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


o livro "linguagem C" de luis damas é muito bom para começar.
 
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

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

O system("PAUSE") é uma chamada ao sistema operativo. Não funciona, por exemplo, no OS X.
uhmm nao era o caso dele..
mas brigado , assim ja sei
 
Back
Topo