Newsgroup: it.comp.lang.c++
Titolo: newbie

ho da poco iniziato a programmare in c++ usando il compilatore g++ su un
computer con linux slackware9.0
ho scaricato una guida ma non riesco a compilare questo programma perchè
dice:
"prova.C:5: 'main' must return 'int'
il comando che uso è "g++ -g -o prova prova.C"
COPIATO DALLA GUIDA
 #include <stdio.h>
#include <iostream.h>
void main()
{
  char astring[50];               //Questo dichiara un array di caratteri
che
                                  //può essere usato come stringa
  cout<<"Inserire una stringa";   //Dovreste conoscerlo!
  gets(astring);                  //L'utente inserirà una stringa (con
spazi)
  cout<<"hai inserito: "<<endl;   //Conoscete anche questo!
  cout<<astring;  //Questo è l'output dell'array di caratteri, nient'altro!
}
Ciao,Devaraja

tuo TCP e ti secco l'HD, segone. (GFX-dev)

 "prova.C:5: 'main' must return 'int'
Fai quello che ti ordina di fare il compilatore, no? 
-- 
Luc.

 il comando che uso è "g++ -g -o prova prova.C"
Il mio compilatore mi da un warning per sta cosa, ma tutto sommato lo
standard è chiaro: la funzione main deve ritornare un intero.
L'intestazione del main quindi deve essere:
int main()
anzichè
void main()
e in fondo al programma prima dell'ultima graffa devi inserire
return 0;
In realtà, se ti dimentichi questa istruzione un buon compilatore la
dovrebbe aggiungere automaticamente, però è buona regola ricordarsela.
Per quanto riguarda il motivo di tutto ciò non ho voglia di soffermarmi
troppo poichè immagino che tu non conosca il concetto di funzione.
I miei "colleghi" hanno ragione sui commenti sul codice, se quel sorgente è
preso pari pari da un esempio del libro, forse è meglio che te ne trovi uno
più aggiornato e/o migliore.
Ti rimando ad un buon libro, molto completo, abbastanza impegnativo ma che
parte dai fondamenti del linguaggio C++ per arrivare a spiegare anche
concetti molto avanzati: C++ Corso di Programmazione, Lippman,
Addison-Wesley
Se non hai mai programmato in alcun linguaggio di programmazione e devi
imparare anche i fondamenti della programmazione strutturata non escluderei
la possibilità di cominciare con un linguaggio più semplice, come il Pascal.
Il C++ è molto potente ma è anche capace di confondere molto le idee.
Ciao.

 più aggiornato e/o migliore.
Non capisco perche' un compilatore dovrebbe correggere un errore. Sapevo (ma
magari mi sbaglio) che il C e il C++ pretendono la funzione main()
dichiarata come int. Allora perche' dichiararla come void? Ho scaricato
alcuni programmi dalla rete che non compilano sotto gcc proprio per questa
ragione e la cosa scoccia parecchio, in quanto non so quanta fiducia dare ad
un programma che dichiara la main come void. Se qualche compilatore compila
void main() allora e' lui che sbaglia, non il gcc.
Ciao
Emanuele

 wrote in message
b8lja9$l68$1...@e3k.asi.ansaldo.it...

Il quote che hai fatto del mio post si riferiva all'istruzione return non
alla dichiarazione void main.
Lo standard C++ prevede che se un int main() non presenta alcun return il
valore restituito è automaticamente 0, per cui l'ultimo return è superfluo
(anche  se forse è buona norma ricordarselo, perchè certi compilatori fanno
a modo loro).
Per quanto riguarda il void main() hai assolutamente ragione tu, nello
standard C++ non esiste,  e un buon compilatore non dovrebbe neppure
accettarlo, il VC++6 invece se lo prende lo stesso, sbagliando e aiutando
molte altre persone a sbagliare.
Ciao Gabriele

 ha scritto nel messaggio
news:4fyra.32078$K35.1...@news2.tin.it...
