Jump to content

Principiante - Hello World não compila


Recommended Posts

Posted (edited)

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 😄

Edited by thoga31
GeSHi

YOU SHALL NOT PASS !!!

Posted (edited)

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!

Posted (edited)

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

Posted (edited)

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!

Posted (edited)

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
Posted

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

Posted (edited)

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!

Posted

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.

Posted (edited)

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!

Posted (edited)

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
Posted (edited)
//#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
Posted (edited)

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
Posted

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!

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
×
×
  • Create New...

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.