Vai al contenuto

Doppio di un numero in C++ su XCode


G84

Messaggi raccomandati

Ciao a tutti,

mi servirebbe un aiuto con il C++.

Devo fare una app che dopo aver inserito un numero mi calcoli il doppio e me lo mostra a schermo.

Io l'ho fatto così:

#include <Carbon/Carbon.h>
#include <iostream.h>

void main ()
{
int NUMERO, DOPPIO;
cout << "Inserire un numero intero: ";
cin >> NUMERO;
DOPPIO=NUMERO*2;
cout << "Il doppio è: " << DOPPIO;
}

Però mi da il seguente errore in fase di debug:

[color="Red"]error: '::main must return 'int'[/color]

Dove sbaglio?

MacBook 2,16 GHz (1 Gb Ram)

iPod Touch 16 Gb 2° Gen

HTC Diamond

InfoProg

Link al commento
Condividi su altri siti

Ho modificato

void main ()

con

int main () 

e adesso l'errore è scomparso e mi esegue l'applicazione ma nella finestra non appare nulla.

Qualche consiglio?

Vi ringrazio anticipatamente.

:love:

MacBook 2,16 GHz (1 Gb Ram)

iPod Touch 16 Gb 2° Gen

HTC Diamond

InfoProg

Link al commento
Condividi su altri siti

allora, togli la include carbon.h e in fondo, come ultima riga di qualsiasi programma, e quindi anche di questo, metti return 0;

così va di sicuro

MacBook Pro 2,4 GHz, 4 GB Ram, 500 GB Hd, OsX 10,6,5

Athlon 64 X2 5600 su MB Asus M3A32-MVP Deluxe - 8 GB ram - 3 TB - Arch Linux e Win Se7en

Pod Classic, 80 GB

iPhone 4, 16 Gb

Link al commento
Condividi su altri siti

allora, togli la include carbon.h e in fondo, come ultima riga di qualsiasi programma, e quindi anche di questo, metti return 0;

così va di sicuro

Nessun errore ma mi appare una schermata bianca, non mi dice: "Inserire un numero intero"..

Come mai?

:ghghgh:

MacBook 2,16 GHz (1 Gb Ram)

iPod Touch 16 Gb 2° Gen

HTC Diamond

InfoProg

Link al commento
Condividi su altri siti

  • 2 settimane dopo...

Togli carbon.h, includi anche la stdlib.h,poi sotto INCLUDE iostream prima del main scrivi "using namespace std;"ed infine prima di chiudere la graffa del main devi scrivere "system( "PAUSE" );" e sotto "return 0;" le virgolette le ho aggiunte io per farti capire quale fosse l'istruzione precisa.Fammi sapere se va.

Ciao

La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché!

Link al commento
Condividi su altri siti

Ma scusate, da quando il main DEVE ritornare un intero?

Pancho was a bandit boy, his horse was fast as polished steel

He wore his gun outside his pants

-----

Il Principe diventa Re, nella notte di Madrid.

Link al commento
Condividi su altri siti

Se la funzione è "int main()" deve per forza ritornare un intero.

La parola che precede una funzione è appunto il TIPO DI RITORNO,in questo caso per il main è int(intero).

In questo momento non mi ricordo proprio se come tipo di ritorno del main si può dare void.

Si può??

La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché!

Link al commento
Condividi su altri siti

Si ma la funzione era void main...Magari il C++ si è evoluto da quando l'ho studiato ma io ho sempre utilizzato void main

Pancho was a bandit boy, his horse was fast as polished steel

He wore his gun outside his pants

-----

Il Principe diventa Re, nella notte di Madrid.

Link al commento
Condividi su altri siti

Ma poi lo ha corretto con int.

Io lo sto studiando proprio adesso in programmazione e il prof ci ha detto che è int main(),ma ricordo che ha anche parlato del void e probabilmente hai ragione tu,nel senso che se non ricordo male ha detto che nella standardizzazione precedente si usava il void ma con la nuova si usa l'int,però non me lo ricordo benissimo.

C'è qualcuno che può confermare??

La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché!

Link al commento
Condividi su altri siti

A quanto ho letto con qualche ricerca fatta in 2 secondi pare che adesso lo standard preveda int in quanto il programma potrebbe essere chiamato da un altro programma/script quindi va usato un ritorno. Il fatto è che così si perde la portabilità dal C a meno di non riconvertire le funzioni.

Pancho was a bandit boy, his horse was fast as polished steel

He wore his gun outside his pants

-----

Il Principe diventa Re, nella notte di Madrid.

Link al commento
Condividi su altri siti

A proposito anche per gli include le cose sono cambiate...ora i .h sono deprecati.

Copio e incollo dal web

> #include <iostream.h>

>

This header is not part of standard C++. It is for G++ an obsolete header. The standard

header is called <iostream>. This defines the stream stuff into the std namespace as well.

This means that in addtition to changing the header you must place explicitly qualify the

stuff from that header (std::cout for example) or bring then into the current context with

using directives (using std::cout or even using namespace std). Do not place using directives

in headers that you expect others to use. It's not nice to pollute their namespace. Stick

to the explicit qualification in headers.

Pancho was a bandit boy, his horse was fast as polished steel

He wore his gun outside his pants

-----

Il Principe diventa Re, nella notte di Madrid.

Link al commento
Condividi su altri siti

In realtà la portabilità non si perde,perchè adesso anche nel C il main ritorna un int.

Il discorso degli header (.h) è sempre stato introdotto nella nuova standardizzazione insieme all'uso dello SPAZIO DEI NOMI(namespace).Infatti sopra ho postato che per correggere il codice si doveva anche scrivere "using namespace std;" altrimenti al posto di cout si deve scrivere std::cout e al posto di cin si deve scrivere std::cin

La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché!

Link al commento
Condividi su altri siti

Cmq se non sbaglio anche se si scrive "#include <iostream.h> il compilatore non da errore, è solo una sintassi ormai superata

La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché!

Link al commento
Condividi su altri siti

Cmq se non sbaglio anche se si scrive "#include <iostream.h> il compilatore non da errore, è solo una sintassi ormai superata

No però da warning, almeno Xcode lo fa

Pancho was a bandit boy, his horse was fast as polished steel

He wore his gun outside his pants

-----

Il Principe diventa Re, nella notte di Madrid.

Link al commento
Condividi su altri siti

Non sono un utente mac,almeno non ancora.Farò il grande passo a novembre nella speranza che esca il nuovo macbook,ma anche se non dovesse uscire prenderò quello attuale.

Cmq proverò con dev C++

La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché!

Link al commento
Condividi su altri siti

in xcode, il tipo di progetto che devi scegliere, non è Carbon C++, ma:

Command Line Utility > C++ tool

dichiara il main come int, e in fondo, prima ci chiudere la graffa, metti un return 0;

gli errori veri son più forti poi, quando fan finta di esser morti lo sai?

Link al commento
Condividi su altri siti

Mi togliete una curiosità..Ma dove programmate..?Devo farlo pure io ma non riesco a capire su che programma programmare..!!

Apple Xcode.

Adesso però sto provando a creare qualcosa in Real Basic dato che il lavoro non mi lascia molto tempo (di giorno purtroppo devo usare Visual Studio)

Pancho was a bandit boy, his horse was fast as polished steel

He wore his gun outside his pants

-----

Il Principe diventa Re, nella notte di Madrid.

Link al commento
Condividi su altri siti

Mi togliete una curiosità..Ma dove programmate..?Devo farlo pure io ma non riesco a capire su che programma programmare..!!

Apple Xcode.

Adesso però sto provando a creare qualcosa in Real Basic dato che il lavoro non mi lascia molto tempo (di giorno purtroppo devo usare Visual Studio).

Se invece vuoi usare Java prova Eclipse, gratuito.

Pancho was a bandit boy, his horse was fast as polished steel

He wore his gun outside his pants

-----

Il Principe diventa Re, nella notte di Madrid.

Link al commento
Condividi su altri siti

Apple Xcode.

Adesso però sto provando a creare qualcosa in Real Basic dato che il lavoro non mi lascia molto tempo (di giorno purtroppo devo usare Visual Studio).

Se invece vuoi usare Java prova Eclipse, gratuito.

grazie mille..sto scaricando apple xcode..lo devo usare per l'università..almeno tolgo la rottura di palle di windows sul mac..dato che ci utilizzavo dev.c++

Ducati 1199 Panigale - Seat Ibiza Fr 1,9 TDI 130cv
Mac Book 2.16 GHZ, 3 gb di Ram
iPod nano da 8 Gb, iPhone 5

Link al commento
Condividi su altri siti

una volta fatto il programma su Apple Xcode..poi lo fai partire dal terminare del mac os..oppure ci sono altre soluzioni..?

anzi vi faccio pure un altro quesito..

come faccio a lanciare un programma da shell precedentemente compilato e salvato .c?

praticamente mi servono i sinonimi di "gcc name file" e "./a.out" di linux..?Grazie a chi risponderà..

Ducati 1199 Panigale - Seat Ibiza Fr 1,9 TDI 130cv
Mac Book 2.16 GHZ, 3 gb di Ram
iPod nano da 8 Gb, iPhone 5

Link al commento
Condividi su altri siti

Ciao a tutti,

mi servirebbe un aiuto con il C++.

Devo fare una app che dopo aver inserito un numero mi calcoli il doppio e me lo mostra a schermo.

Io l'ho fatto così:

#include <Carbon/Carbon.h>
#include <iostream.h>

void main ()
{
int NUMERO, DOPPIO;
cout << "Inserire un numero intero: ";
cin >> NUMERO;
DOPPIO=NUMERO*2;
cout << "Il doppio è: " << DOPPIO;
}

Però mi da il seguente errore in fase di debug:

[color="Red"]error: '::main must return 'int'[/color]

Dove sbaglio?

Crea un progetto di tipo Standard Tools anzicché Carbon e poi scrivi nel file main:

#include <iostream>

using namespace std;

int main(){

//...codice...

return 0;

}

Così dovrebbe funzionare!!!!

I love Mac

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...