Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

LagMaster

Principiante - Hello World não compila

Recommended Posts

LagMaster

Boas

Comprei hoje o livro do Damas, Linguagem C e decidi testar um codigo básico de lá no DevC++.

O código é este:

#include <stdio.h>
main()
{
  printf ("Hello World!");
}

Mas quando meto para compilar não deixa. Não diz que tenho erro em linha nenhuma só diz isto:

C:\Users\Eu\Desktop\C\Makefile.win [build Error] [Project1.exe] Error 1

Testei no Code Blocks e também não compila.

Que erro é que estou a fazer ?

Agradeço muito a ajuda.

Cumpz

LagMaster :D

Edited by thoga31
GeSHi

YOU SHALL NOT PASS !!!

Share this post


Link to post
Share on other sites
thoga31

E se for assim?

#include <stdio.h>
int main()
{
  printf ("Hello World!");
  return 0;
}

Comprei hoje o livro do Damas, Linguagem C e decidi testar um codigo básico de lá no DevC++.

Este livro já está a ficar desactualizado. Vais encontrar mais nuances ao longo das páginas.

Edited by thoga31

Knowledge is free!

Share this post


Link to post
Share on other sites
LagMaster

E se for assim?

#include <stdio.h>
int main()
{
  printf ("Hello World!");
  return 0;
}

Este livro já está a ficar desactualizado. Vais encontrar mais nuances ao longo das páginas.

Desde já obrigado pela resposta rápida :)

Eu comprei porque ouvi que era bom :S Agora duvido que possa arranjar outro tão cedo, será que nao dá para passar por essas nuances de alguma forma ?

Quanto ao problema, copiei esse codigo fiz compile e tudo normal, mas quando faço run diz que ainda nao esta compilado. Fiz compile and run e o erro aparece: C:\Users\Ted\Desktop\C\Makefile.win [build Error] [Project1.exe] Error 1

Será do programa que estou a usar ?

Edited by LagMaster

YOU SHALL NOT PASS !!!

Share this post


Link to post
Share on other sites
thoga31

Nunca utilizei o Dev-C++. Na realidade nunca me dediquei a programar em C. Mas sei os princípios básicos.

Se estás a utilizar o Dev-C++, evita criar projectos. Cria apenas file sources novos.

Quanto ao livro, sim, há maneira de contornar. Mas não há nada que te indique lá no livro "isto é algo desactualizado e não recomendado".

Edited by thoga31

Knowledge is free!

Share this post


Link to post
Share on other sites
LagMaster

Obrigado pela ajuda :)

Vou ver então se experimento noutro IDE, senão acho que é poderei considerar um mau começo com a linguagem :P

Cumpz

LagMaster


YOU SHALL NOT PASS !!!

Share this post


Link to post
Share on other sites
HappyHippyHippo

Será do programa que estou a usar ?

parece que sim, mas se deu problemas noutra aplicação, começo a duvidar ...

que documentação usaste para instalar o dev-c++ ??


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Ruka284

faz assim e não dá erro

#include<stdio.h>
#include<conio.h>
main ()
{
printf("Hello Word");
getch();
}

Share this post


Link to post
Share on other sites
thoga31

faz assim e não dá erro

#include<stdio.h>
#include<conio.h>
main ()
{
printf("Hello Word");
getch();
}

Falta algo, que foi o que eu sugeri no meu primeiro post.


Knowledge is free!

Share this post


Link to post
Share on other sites
HappyHippyHippo

ignora o que foi escrito anteriormente pelo @ruka284, razões:

- conio.h nem deveria existir, só funciona no windows e as suas funcionalidades são irrelevantes

- a função main nem está declarada em nenhum dos dois protótipos definidos

>>> int main()

>>> int main(int argc, char ** argv)

- a função getch() só existe no conio.h, algo que já existe no stdio.h = getchar()

- falta do valor de retorno da função main, um inteiro

Edited by HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Ruka284

ignora o que foi escrito anteriormente pelo @ruka284, razões:

- conio.h nem deveria existir, só funciona no windows e as suas funcionalidades são irrelevantes

- a função main nem está declarada em nenhum dos dois protótipos definidos

>>> int main()

>>> int main(int argc, char ** argv)

- a função getch() só existe no conio.h, algo que já existe no stdio.h = getchar()

- falta do valor de retorno da função main, um inteiro

conio.h e uma biblioteca do c, no meu ver não se deve ignorar

int main e do C++ e no c e main.

mas eu tb sou aprendiz

Share this post


Link to post
Share on other sites
thoga31

Vou frisar isto:

mas eu tb sou aprendiz

Posto isto, conio.h é uma lib que pode muito bem ser ignorada já que só funciona em Windows e os seus métodos de nada servem, pois na sua maioria são uns remakes dos métodos standard. Um exemplo clássico é o getch a "substituir" o getchar.

Depois, int main é do C e do C++ - é de ambos! Aliás, é obrigatório definir o tipo da função main em C na sua versão mais recente!

Edited by thoga31

Knowledge is free!

Share this post


Link to post
Share on other sites
Ruka284

Vou frisar isto:

Posto isto, conio.h é uma lib que pode muito bem ser ignorada já que só funciona em Windows e os seus métodos de nada servem, pois na sua maioria são uns remakes dos métodos standard. Um exemplo clássico é o getch a "substituir" o getchar.

Depois, int main é do C e do C++ - é de ambos! Aliás, é obrigatório definir o tipo da função main em C na sua versão mais recente!

Boa thoga, assim e que aprendemos.

Share this post


Link to post
Share on other sites
Ruka284

somos todos, mas por esse passo já eu passei

ok, na minha opinião à varias maneira de fazer um programa, o que faz a diferença e como esta estruturado a sintaxe.

Share this post


Link to post
Share on other sites
thoga31

ok, na minha opinião à varias maneira de fazer um programa, o que faz a diferença e como esta estruturado a sintaxe.

Não é uma opinião de uma pessoa. É mesmo um facto: há várias soluções possíveis para resolver o mesmo problema no mundo da programação.

Contudo, há métodos melhores e métodos menos bons. E há métodos desastrosos, também.

E aproveito para referir que não é a estruturação da sintaxe que muda. A sintaxe é a mesma em qualquer circunstância, usando a mesma LP. O que muda é o algoritmo e a maneira como o aplicas.

Vê as várias soluções que são apresentadas, os conselhos que te são dados, e não te pegues à mera ideia de que "o meu também funciona, logo está bom". Não é verdade: pode funcionar, mas nem sempre é o melhor, e há aqui pessoas que dão vastos e bons conselhos para melhorar pois têm toda uma bagagem de experiência consigo. Tem-nos sempre em conta. ;)

Edited by thoga31

Knowledge is free!

Share this post


Link to post
Share on other sites
TopNerds

File > New > Project > console Aplication



#include <cstdlib>
#include <iostream>

using namespace std;

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

Edited by thoga31
GeSHi

Share this post


Link to post
Share on other sites
thoga31

Isso é C++, não é C.

Mas dá para testar o Dev-C++

Edited by thoga31

Knowledge is free!

Share this post


Link to post
Share on other sites
HappyHippyHippo
//#include <cstdlib>
// - para C, o header é <stdlib.h>
// - desnecessário se não se usar o EXIT_SUCCESS, que não é mais do que o valor zero

//#include <iostream>
// - para C, o header é <stdio.h>
#include <stdio.h>

//using namespace std;
completamente irrelevante para o código assim como não existe este conceito em C

int main(int argc, char *argv[])
{
   printf("Hello World\n"); // <-- adicionar o caracter '\n' para que a apresentação seja mais organizada

//    system("PAUSE");
//    código que vincula a aplicação a um Sistema Operativo : Windows =>> desnecessário

//    return EXIT_SUCCESS;
   return 0;
}

Edited by HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
TopNerds

Enganei-me mandei em C++, em C

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
printf("Hello World\n");
system("PAUSE");
return 0;
}

Edited by TopNerds

Share this post


Link to post
Share on other sites
thoga31

Enganei-me mandei em C++, em C

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
printf("Hello World\n");
system("PAUSE");
return 0;
}

Continuas a vincular esse programa ao Windows de forma inequívoca. A meu ver, é uma má prática.


Knowledge is free!

Share this post


Link to post
Share on other sites
TopNerds

Continuas a vincular esse programa ao Windows de forma inequívoca. A meu ver, é uma má prática.

O @LagMaster está a usar windows com Dev-c++.

Share this post


Link to post
Share on other sites
thoga31

O @LagMaster está a usar windows com Dev-c++.

E isso implica que se deva vincular o código-fonte ao Windows?


Knowledge is free!

Share this post


Link to post
Share on other sites
LagMaster

Boas :P

Muito obrigado pela vossa ajuda, depois testar novamente (ja tentei desinstalar mas continuo com o mesmo erro). Peguei no meu netbook e fiz uma partição com o Ubuntu, se calhar vou passar a usá-lo mais, portanto se calhar tentarei afastar-me da vinculação ao windows.

Já agora, se me pudessem aconselhar um IDE ou um editor de texto para usar no ubuntu (e um compilador já agora). É que eu ainda nao percebo muito disto :S

Cumpz e muitos agradecimentos pela ajuda ( volto mais tarde para meter se ja consegui compilar ou n ).

LagMaster


YOU SHALL NOT PASS !!!

Share this post


Link to post
Share on other sites
HappyHippyHippo

eu uso o eclipse, mas seria mais fácil usar o NetBeans

acho que o geany também é fácil de usar, mas não posso garantir.


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.