c--Ajuda

duvidas:
->Entao nao é necessário por o "main()",sempre?
->Porque nao poes "{" depois do "using namespace std"?
Ja sei a resposta a esta pergunta.excesse:).Obrigado e Fiquem Bem
 
Última edição:
só uma duvida:entao nao é necessário por o "main()",sempre?

Segundo as normas a função main (função principal do programa) pode ter 2 cabeçalhos:

int main()

ou

int main(int argc,char *argv[])

Logo quando queres começar a escrever a tua função main, escolhes um dos cabeçalhos. A escolha depende se queres ou não passar parâmetros ao programa na linha de comandos. Se quiseres, tens de usar a 2ª maneira. Mas se não quiseres, tanto faz.

Outra duvida:Porque nao poes "{" depois do "using namespace std"?eu aprendi que o "{" tinha a mesma função que o "begin" no pascal.Obrigado e Fiquem Bem

A chaveta '{' não se põe depois do using namespace std porque isso é uma declaração global ao programa (é uma declaração que é vista por todas as funções do programa e todas podem tirar partido dela). A chaveta usa-se para iniciar a escrita do corpo de uma função ou de uma condição ou de um ciclo:
Exemplo:

Código:
int main() [COLOR=Red]{[/COLOR]
    ...
    if (...) 
    [COLOR=RoyalBlue]{[/COLOR]
             ...
    [COLOR=RoyalBlue]}[/COLOR]
    
    while (...)
    [COLOR=Lime]{[/COLOR]
          ...
    [COLOR=Lime]}[/COLOR]
    
    for (...)
    [COLOR=DarkOrange]{[/COLOR]
        ...
    [COLOR=DarkOrange]}[/COLOR]
[COLOR=Red]}
[/COLOR]
 
ele nao faz o "executar" :(.até ja exprimentei o compilar&executar, e ele so me compila e nao faz mais nada :(!Obrigadao e fiquem Bem

Bem, eu fiz este pequeno programa em devc++ para testar o teu problema:

Código:
#include <iostream>
using namespace std;
 
int main()
{
 
cout << "Hello World";
cin.get();
 
return 0;
}

Depois fiz [CTRL]+[F9] para compilar e em seguida [CTRL]+[F10] para executar (claro que primeiro guardei no directório pretendido). Desta forma consegui executar sem problemas. O teu problema não será por não escreveres cin.get(), e por isso a janela de DOS desaparece muito depressa?

Vá, cumps
 
Código:
#include <iostream>
using namespace std;
 int main(int argc, char *argv[], int s) 
 { 
     cout << "olá mundo";
     cin >> s;
     system("PAUSE");
     return EXIT_SUCCESS;
}
Há algode errado?Fiquem Bem e obrigado:001:
 
Código:
#include <iostream>
using namespace std;
 int main(int argc, char *argv[]) 
 { 
     [COLOR=SandyBrown]int s;[/COLOR]
     cout << "olá mundo";
     cin >> s;
     system("PAUSE");
     return EXIT_SUCCESS;
}
 
Assim, diz-me que eu tenho de definir o "s" como uma variavel.Bem, isto é muito mais complicado do que o que eu fazia no papel........Fiquem Bem e obrigado pela paciencia
 
Última edição:
Assim, diz-me que eu tenho de definir o "s" como uma variavel.Bem, isto é muito mais complicado do que o que eu fazia no papel........Fiquem Bem e obrigado pela paciencia

Mas definir o "s" como uma variavel foi o que o Baderous acabou de fazer. Não estou a perceber muito bem a tua dúvida. E já agora, já consegues executar?

Vá, cumps
 
Nao consiguoi executar, e o erro que me dá, fazendo como o Baderous fez, é:
->3 C:\Documents and Settings\My Documents\Dev-CppPortable\App\devcpp\main.cpp expected identifier before ')' token
->4 C:\Documents and Settings\My Documents\Dev-CppPortable\App\devcpp\main.cpp ISO C++ forbids declaration of `parameter' with no type
->6 C:\Documents and Settings\My Documents\Dev-CppPortable\App\devcpp\main.cpp `s' does not name a type
->7 C:\Documents and Settings\My Documents\Dev-CppPortable\App\devcpp\main.cpp `s' undeclared (first use this function)
O programa, está:
Código:
#include <iostream>
using namespace std;
 int main(int argc, char *argv[], ) 
 { 
     int s
     cout << "olá mundo";
     cin >> s;
     system("PAUSE");
     return EXIT_SUCCESS;
}
Fiquem Bem, e obrigado pela paciencia
 
Nao consiguoi executar, e o erro que me dá, fazendo como o Baderous fez, é:
->3 C:\Documents and Settings\My Documents\Dev-CppPortable\App\devcpp\main.cpp expected identifier before ')' token
->4 C:\Documents and Settings\My Documents\Dev-CppPortable\App\devcpp\main.cpp ISO C++ forbids declaration of `parameter' with no type
->6 C:\Documents and Settings\My Documents\Dev-CppPortable\App\devcpp\main.cpp `s' does not name a type
->7 C:\Documents and Settings\My Documents\Dev-CppPortable\App\devcpp\main.cpp `s' undeclared (first use this function)
O programa, está:
Código:
#include <iostream>
using namespace std;
 int main(int argc, char *argv[], ) 
 { 
     int s
     cout << "olá mundo";
     cin >> s;
     system("PAUSE");
     return EXIT_SUCCESS;
}
Fiquem Bem, e obrigado pela paciencia

Tens uma vírugla a mais nos argumentos do main e falta o ';' na declaração do s. ;)
 
Nao consiguoi executar, e o erro que me dá, fazendo como o Baderous fez, é:
->3 C:\Documents and Settings\My Documents\Dev-CppPortable\App\devcpp\main.cpp expected identifier before ')' token
->4 C:\Documents and Settings\My Documents\Dev-CppPortable\App\devcpp\main.cpp ISO C++ forbids declaration of `parameter' with no type
->6 C:\Documents and Settings\My Documents\Dev-CppPortable\App\devcpp\main.cpp `s' does not name a type
->7 C:\Documents and Settings\My Documents\Dev-CppPortable\App\devcpp\main.cpp `s' undeclared (first use this function)
O programa, está:
Código:
#include <iostream>
using namespace std;
 int main(int argc, char *argv[], ) 
 { 
     int s
     cout << "olá mundo";
     cin >> s;
     system("PAUSE");
     return EXIT_SUCCESS;
}
Fiquem Bem, e obrigado pela paciencia

Para o teu código ficar bem seria escrito assim (a correcção foi feita por Mr. Brightside):

Código:
#include <iostream>
using namespace std;
 
int main(int argc, char* argv[])
{
[INDENT]int s;
cout << "Olá mundo";
cin >> s;
system("pause");
return EXIT_SUCESS;
[/INDENT]}

Agora, vou-te dar apenas uma dica: as duas últimas linhas não estão erradas no que diz respeito a sintaxe de C++. Agora, que elas vão contra alguns princípios de programação... a linha "system("pause")" está estremamente dependente do sistema em que a irás executar. Ou seja, não tens 100% de certeza que ela irá funcionar em todos os computadores que a executes.

A última linha, pode (e a meu ver deve) ser substituída por "return 0". Se reparares com atenção, antes de main() tens escrito "int". Isto significa que a tua função principal (main) terá de retornar um valor do tipo inteiro, ou seja, 0, 1, 2, 3, 4, 5 e por aí fora. Ora, por norma dos compiladores de C++, quando main retorna 0 então está-se a comunicar ao sistema que se terminou a execução com sucesso. Ao escreveres "return 0" estás a indicar ao sistema que está tudo bem, não há problemas. Se retornasses um valor diferente de zero então quererias indicar que houve algum problema durante a execução. Um exemplo em que isso pode acontecer: quando aprenderes apontadores, irás aprender que para determinados tipos de variáveis terás de "alugar" uma determinada quantidade de memória (isto faz-se pelo operador new, mas não tomes atenção agora a isto ...). Pode acontecer que não tenhas de momento essa quantidade de memória disponível ou que a tua memória esteja demasiado fragmentada. Ora é possível, através de uma determinada sintaxe de código, saberes se uma destas situações aconteceu. Se assim for, poderás retornar na tua main um valor diferente de zero, indicando ao sistema que houve um determinado problema.

Espero que a minha explicação não te tenha vindo confundir ainda mais e que os restantes membros da techzone concordem comigo.

Vá, cumps
 
Relativamente ao EXIT_SUCCESS:

Código:
The following programs do nothing but terminate and return a success [URL="http://en.wikipedia.org/wiki/Exit_status"]status[/URL] to the system.
 [URL="http://en.wikipedia.org/wiki/C_%28programming_language%29"]C[/URL]:
 [LEFT] #include <stdlib.h>;
 
 int main(void)
 {
     exit(EXIT_SUCCESS);
 } [/LEFT]
 or:
 [LEFT] #include <stdlib.h>;
 
 int main(void)
 {
     return EXIT_SUCCESS;
 }
[/LEFT]
 
Olhem, pus a minha duvida á minha prof, e quando fui executar o programa, ele deu.A minha prof disse que eu tenho de me registar, para a consola ter todas as funçoes.Desculpem lá.O programa nao estava errado.Desculpem lá e Fiquem Bem
 
Back
Topo