problema em C

Sway

To fold or to FOLD?
começei ha pouco tempo em programação e resolvi comçar em C nao sei se fiz bem.

comprei um liro e tenho feito tudo com ele mas tenho um problema no meu ver estupido mas a solução nao deve ser dificil no entanto nao consigo resolver.

com progrmas simples do genero

printf("ola techzone"); depois de compilado e sem erros o programa nao abre isto é, faço duplo click ainda vislumbro a janela pretas mas fecha-se logo e nem consigo ler se la aparece nada. simplesmente fecha mesmo antes de eu o ver. mas consigo perceber que abre.

o que se passa?

obrigado, abraço!
 
em que SO trabalhas?

para usar C, na minha opinião, não há melhor do que o Linux (Unix)

lá executas o programa pela linha de comandos e como a janela continua aberta podes ver o resultado.
tens também a função 'sleep(unsigned int seconds)' (pelo menos em Unix, em windows não sei, mas também deve haver alguma coisa...) que te permite pará o programa durante um determinado tempo, para que possas ver o resultado.
 
ando a aprender C e também tive o mesmo problema a programar no windows a janela fechava logo mal o programa acabar de ser executado.....

A solução é como o SoundSurfer disse abrires a linha de comandos do windows ....
iniciar > programas > acessorios > linha de comandos ....

por acaso também me aconselharam a programar em linux .... mas como n tenho nada instalado em no meu linux ....

já agora que compilador usas para windows???? eu uso o dev-c++....:)
 
Boas!

Tal como referiram antes, basta executares o programa APÓS compilado na consola que vês o resultado!

Se executares pelo compilador ele abre a janela, escreve, e depois fecha a janela, é tão rápido que nem tens tempo de ver nada.

As sugestões para linux...., são boas e tal..., mas se ele está a começar agora em linux até é capaz de atrofiar uma beca principalmente se começar por usar o gcc, o g++, o cc and son on..., para começar se estás habituado ao windows, segue por aí.

Para "obrigares" o programa a esperar por ti..., mete um getc() como também disseram antes, que vai mandar o programa esperar por um caracter..., isto é, o programa corre todo até a essa linha e só continua (acaba nesse caso) quando carregares numa tecla.

Tens vários truques para isso, mas esse é capaz de ser dos melhores :)

abraços, HecKel
 
ok obrigado.

epa nao usem termos técnicos que eu estou em economia, tou a aprender isto por curiosidade portanto nao sei rigorosamente nada! :)

abraço e obrigado!
 
só uma coisa... toda a gente disse uma coisa diferente.

la em cima disseram: poes getc() depois do main depois alguem disse poes getchar() e agora disseram getch() ante sde fechar o main.

então como é? todos dão? e onde ponho? dentro do main ou depois?
 
Todos dão!

Uns requerem "***** coisa" seguindo de enter (caso do scanf), outros como o getchar e o getc apenas requerem um caracter sem mais nada.

No entanto todos cumprem o seu objectivo, fazem o programa esperar qualquer coisa, e enquanto o programa espera por essa qualquer coisa tu vês os resultados que pretendias (ou não).

Basicamente é um truque para a janela não fechar logo :)

abraços, HecKel
 
tens aqui um exemplo

#include <stdio.h>
#include <stdlib.h> //para usar o system("PAUSE")
int main()
{
printf("ola techzone");
return 0;
system("PAUSE");
}
 
É assim, tu decidiste usar o windows para programar C, provavelmente tens o compilador e ambiente de trabalho dev-cpp que é um programa para c e c++.

Neste, para o teu programa não fazer logo "HALT" e sair, tens de acrescentar no fim do main(), e como já disseram antes,
Código:
system("PAUSE");
Se preferisses, ou preferires ir para Linux, usas o compilador gcc.
Como editor do código podes usar o emacs, vim, pico, gedit... etc

e usas o comando, na shell, gcc ficheiro.c

e o gajo cria-te um ficheiro a.out por defeito na pasta onde executaste o comando.
Para modares o nome do fichiero final fazes: gcc ficheiro.c -o programa
e aí ele cria-te um executável chamado "programa".

depois para não estares constantemente a fazer isto podes sempre fazer um makefile (google for it)

mas no dev-cpp usas só o F9 para compilar e correr.

__

JuSt_Me_AnD_yOu:

Não precisas da biblioteca "stdlib.h" para invocar system("PAUSE"); pelo menos no meu compilador
 
ja consegui, obrigado a todos.

não sei se existe mas se quiserem dado o titulo do tópico pode ficar uma thread para dúvidas gerais, assim que alguém vai tendo problemas posta aqui.
 
Back
Topo