Hello World no Dev C++

dr_kaufman

Power Member
Eu ando a ver como se programa pelo teh C programming labnguage e a usar o Dev C++ para compilar mas n consigo correr.

Provavelmente enganei-me num passo qualquer por isso vou fazer aqui tudo como faço.

-File>New>Source File

-Escrevo lá

Código:
#include <stdio.h>

main()
{
   printf("hello, world\n");
}

-Control+F9 (Compile)>Meto o Nome (hello)...Done

- Meto RUN e não acontece nada!


----------Tentei de outra forma----------

Project-New project-Console Application-Nome(helloproj)

Ele adiciona umas cenas ao source:

Código:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    system("PAUSE");
    return EXIT_SUCCESS;
}

---

Devo meter aquilo do hello world aqui?

Desculpem mas estava a tentar ser autodidata e tentar aprender a programar mas n me estou a dar muito bem :/.

Boa Noite!
 
Última edição pelo moderador:
CTRL+N => Crias um novo ficheiro.
F9 => Grava, compila e executa.

Mais simples não há.

Obrigadão, mas não acontece nada :(


Control+N

Escrevo

Código:
#include <stdio.h>

main()
{
   printf("hello, world\n");
}

F9

Gravo, ele compila mas n aprece nada onde eu possa ver o "Hello World"

Mas obrigado :D


EDIT: Aparece assim quanse isntantaneamente uma janela tipo consola, e desaparece logo, estive a pesqueisar e acho que tenho de adicionar qualquer coisa para pausar aquilo sabes me dizer qual é o código sff
 
Última edição pelo moderador:

obrigadíssimo mas continuo sem conseguir :S

Como aí diz, adicionei o system("pause"); no fim do código, e apareceu em vermelho depois de compilar, então como aí diz tb tentei adicionar o #include <cstdlib> no início e aconteceu o mesmo ao system bla bla então substitui por #include <stdlib.h> e tb n deu, então tentei da outra forma com o cin.get(); e embirrava como vez o o system assima vermelho com uma cruz.


Mesmo assim obrigado.
 
A janela que ves é o programa a correr e a fechar.
Experimenta fazer um scanf no fim para ele ficar à espera de qualquer coisa, ou entao corre a partir da linha de comando depois de compilar.
 
scanf e printf e afins é C, não C++ (embora C esteja dentro de C++).

Coloca um getchar(); ou um cin.get(); antes do return 0; para que ele fique à espera que alguma tecla seja premida.

Código:
#include <iostream> //biblioteca de entrada e saída de dados onde está definido o cout
using namespace std; //cout e endl estão no espaço std

int main()
{
     cout << "Hello world" << endl;

     getchar();

     return 0;
}

Um programa tem sempre uma função principal, a função main. Esta é uma função que deve ser do tipo int (integer), e como tal deve retornar um integer (neste caso 0). Atenção que nem todas as funções retornam inteiros, mas isso fica para mais tarde.
 
scanf e printf e afins é C, não C++ (embora C esteja dentro de C++).

Coloca um getchar(); ou um cin.get(); antes do return 0; para que ele fique à espera que alguma tecla seja premida.

Código:
#include <iostream> //biblioteca de entrada e saída de dados onde está definido o cout
using namespace std; //cout e endl estão no espaço std

int main()
{
     cout << "Hello world" << endl;

     getchar();

     return 0;
}
Um programa tem sempre uma função principal, a função main. Esta é uma função que deve ser do tipo int (integer), e como tal deve retornar um integer (neste caso 0). Atenção que nem todas as funções retornam inteiros, mas isso fica para mais tarde.

Já deu :D

Muito obrigado, e muito obrigado tb pela explicação detalhada dos comandos!
 
Eu também já tive esse problema, ainda tou a aprender C (muito verde ainda :p), mas quando fazia um Hello World no DevC++ fazia isto:

Código:
#include <stdio.h>
main()
{
   printf("Hello World");
   getchar();
}
Usava o getchar para, digamos assim, pausar a linha de comandos...mas agora surge outra duvida, o return 0; é usado em que sentido?
 
Última edição pelo moderador:
Essa do getchar() é mt simples, funciona bem!

Outra dúvida, o exercício seguinte é fazer uma tabela celsius-fahrenheit mas acontece a mesma coisa por isso onde devo por o getchar(); apra ele n desaparecer logo?

Código:
#include <stdio.h>
/* print Fahrenheit-Celsius table
for fahr = 0, 20, ..., 300 */
main()
{
 int fahr, celsius;
 int lower, upper, step;
 lower = 0; /* lower limit of temperature scale */
 upper = 300; /* upper limit */
 step = 20; /* step size */
 fahr = lower;
 while (fahr <= upper) {
 celsius = 5 * (fahr-32) / 9;
 printf("%d\t%d\n", fahr, celsius);
 fahr = fahr + step;
 }
}
 
Essa questão do return 0 ser omitido, se não estou em erro, tem a ver com o compilador - se o return 0 não estiver na função main, o compilador acrescenta-o no final. É boa prática, no entanto, metê-lo sempre - lá porque este compilador em particular o mete não significa que qualquer outro compilador seja obrigado a fazê-lo. O mesmo digo de usar o getchar() sem fazer #include <cstdio> (que é o include apropriado em C++ para a biblioteca stdio.h).

EDIT: OK, por algum motivo assumi que esta thread lidava com o C++ e não com o C. Peço desculpa. Ainda assim, a questão do return 0 mantém-se, e a questão do getchar() também, mas o include para o getchar() em C é o #include <stdio.h> que normalmente se usa (em contraste com o C++ que se deve substituir por #include <cstdio>).
 
Última edição:
Essa do getchar() é mt simples, funciona bem!

Outra dúvida, o exercício seguinte é fazer uma tabela celsius-fahrenheit mas acontece a mesma coisa por isso onde devo por o getchar(); apra ele n desaparecer logo?

Código:
#include <stdio.h>
/* print Fahrenheit-Celsius table
for fahr = 0, 20, ..., 300 */
main()
{
 int fahr, celsius;
 int lower, upper, step;
 lower = 0; /* lower limit of temperature scale */
 upper = 300; /* upper limit */
 step = 20; /* step size */
 fahr = lower;
 while (fahr <= upper) {
 celsius = 5 * (fahr-32) / 9;
 printf("%d\t%d\n", fahr, celsius);
 fahr = fahr + step;
 }
}

Pões sempre o getchar() no fim do main. E atenção ao retorno do main que anda aqui a ser falado.
 
Certo, desculpem tantas perguntas mas, sem o getchar(); aparece instantaneamente a tabela mas é perceptivel que tem os valores todos e quando meto o getchar(); aparecem apenas dois valores:

0 -17

em vez de:

1 -17
20 -6
40 4
60 15
80 26
100 37
120 48
140 60
160 71
180 82
200 93
220 104
240 115
260 126
280 137
300 148


Terá a ver com isso do retorno do main?
 
Código:
#include <stdio.h>
/* print Fahrenheit-Celsius table
for fahr = 0, 20, ..., 300 */
main()
{
 int fahr, celsius;
 int lower, upper, step;
 lower = 0; /* lower limit of temperature scale */
 upper = 300; /* upper limit */
 step = 20; /* step size */
 fahr = lower;
 while (fahr <= upper) {
 celsius = 5 * (fahr-32) / 9;
 printf("%d\t%d\n", fahr, celsius);
 fahr = fahr + step;
 [SIZE=5][B]getchar();[/B][/SIZE]
 }
}

meti depois do main, (acho eu :P )
 
Back
Topo