Problema ao copilar programa, main não aceita valor vazio [RESOLVIDO]

1. Problema ao copilar programa, main não aceita valor vazio [RESOLVIDO]

kaito
hatoo

(usa Debian)

Enviado em 10/05/2010 - 00:46h

Eu estou estudando c++, mas estou com uma duvida.
Na apostila, tem o seguinte codigo

#include <iostream>

void main()
{
{
std::cout << "--------------> Testando uso de int"<<std::endl;
int x, y, z;
std::cout << "Entre com int x (ex: 300):"; std::cin >> x;
std::cout << "Entre com int y (ex: 500):"; std::cin >> y;
std::cin.get();

z = x + y;
std::cout <<"int z = x + y =" << z << std::endl;
z = x - y;
std::cout <<"int z = x - y =" << z << std::endl;
}

std::cout << "---------------> Testando uso de unsigned int" <<std::endl;
unsigned int x,y,z;
std::cout <<"Entre com unsigned int x (ex: 300)"; std::cin >> x;
std::cout <<"Entre com unsigned int y (ex: 500)"; std::cin >> y;
std::cin.get();

z = x + y;
std::cout <<"unsigned int z = x - y"<< z <<std::endl;
z = x - y;
std::cout <<"unsigned int z = x - y"<< z <<std::endl;

if ( x > y)
z = x - y;
else
z = y - x ;

int sinal = x > y ? +1 : -1 ;

int valor_z = sinal * z ;
std::cout <<"z= | x - y |=" << z << std::endl;
std::cout <<"sinal de x - y =" << sinal << std::endl;

std::cout <<"int valor_z = sinal * z =" << valor_z << std::endl;
}

quando copila da o seguinte erro:'main must return int'

a unica forma de fazer funcionar é colocar no inicio int main??
eu não entendo, em c, c++, nunca consegui copilar codigo nenhum que contenha void main(), todos dão erro. Mesmo que eu copie igual na apostila, sempre fala que o main retorna um inteiro, como faço para retornar valor vazio no main


  


2. MELHOR RESPOSTA

euteste da silva
foxbit3r

(usa Solaris)

Enviado em 13/05/2010 - 15:26h

é melhor deixar de dar credibilidade pra essa apostila.
O programa principal deve retornar num inteiro para o sistema operacional.

O correto é um programa retornar 0 quando acabou com sucesso ou um outro inteiro quando ocorreu alguma problema.

O main sempre deve retornar um inteiro.

3. Re: Problema ao copilar programa, main não aceita valor vazio [RESOLVIDO]

kaito
hatoo

(usa Debian)

Enviado em 10/05/2010 - 02:27h

bom, eu já vi muitos codigos que ultilizam o void main, e muitos falham ao copilar.

Agora o que eu queria saber é como retornar um valor vazio mesmo, tem como?


4. Re: Problema ao copilar programa, main não aceita valor vazio [RESOLVIDO]

André
andrezc

(usa Debian)

Enviado em 10/05/2010 - 09:43h

void main(void){

//....
// código contido na funcao main
//...
}


ou


int main(){

//....
// código contido na funcao main
//...
return (0);
}


5. Re: Problema ao copilar programa, main não aceita valor vazio [RESOLVIDO]

Marcelo A. B. Slomp
mslomp

(usa Slackware)

Enviado em 10/05/2010 - 11:24h

você pode contornar essa "exigência" para main com o atributo noreturn:

void __attribute__ ((noreturn)) main() {
blablabla;
}


6. Re: Problema ao copilar programa, main não aceita valor vazio [RESOLVIDO]

kaito
hatoo

(usa Debian)

Enviado em 12/05/2010 - 00:38h

realmente a unca coisa que funcionou foi int main()
mas, eu não entendo por que na apostila que baixei ensina nesse lugar usar void main ()

realmente o void so consigo fazer ele funcionar dentro de uma classe, ou, nos metodos de uma classe, mas para usar no programa principal como main, realmente ele não funciona.

Agora uma dúvida, é possivel fazer retornar um caractere? Ex:
char main ()






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts