Precedente :: Successivo |
Autore |
Messaggio |
sevenjeak Semidio


Registrato: 04/02/08 22:05 Messaggi: 308 Residenza: Roma
|
Inviato: 18 Feb 2009 17:49 Oggetto: [C++] Errore "stdio.h" |
|
|
Salve.
Premetto che ho appena iniziato ad usare il C++, per ora ho voluto fare un programma che mi fa semplicemente la somma di due numeri inseriti in input dall'utente, in codice è questo:
Codice: |
#include "stdio.h"
int a,b,ris;
main()
{
printf("Inserisci il primo numero/n");
scanf("%d",&a);
printf("Inserisci il secondo numero/n");
scanf("%d",&b);
ris=a+b;
printf("La somma tra 'a' e 'b' e' %d)",ris);
}
|
Mi da errore alla prima righa ( #include "stdio.h" ), ho pensato che il file stdio.h non esistema, ma esiste, quindi non saprei, mi da questo errore:
Codice: |
[C++ error] somma.cpp(1): E2209 Unable to open include file 'STDIO.H'
|
Come posso risolvere? |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 18 Feb 2009 18:05 Oggetto: |
|
|
usa:
Codice: |
#include <stdio.h>
|
invece di
Codice: |
#include "stdio.h"
|
tieni conto che la printf è una funzione di c e non di c++ però. |
|
Top |
|
 |
sevenjeak Semidio


Registrato: 04/02/08 22:05 Messaggi: 308 Residenza: Roma
|
Inviato: 18 Feb 2009 18:09 Oggetto: |
|
|
Provato. mi da lo stesso errore. |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 18 Feb 2009 18:27 Oggetto: |
|
|
Puoi fornire la versione di compilatore che usi? |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11810 Residenza: Tokelau
|
Inviato: 18 Feb 2009 18:29 Oggetto: |
|
|
freemind ha scritto: | tieni conto che la printf è una funzione di c e non di c++ però. |
a me sembra tutto C  |
|
Top |
|
 |
sevenjeak Semidio


Registrato: 04/02/08 22:05 Messaggi: 308 Residenza: Roma
|
Inviato: 18 Feb 2009 19:08 Oggetto: |
|
|
freemind ha scritto: | Puoi fornire la versione di compilatore che usi? |
Che editor uso?
Cmq come editor uso Boirland C++ alla versione 5.0.
Ma cmq credo il problema non sia quello, visto che mi hanno detto in gilo che C++ incorpora anche il C. |
|
Top |
|
 |
sevenjeak Semidio


Registrato: 04/02/08 22:05 Messaggi: 308 Residenza: Roma
|
Inviato: 18 Feb 2009 20:29 Oggetto: |
|
|
Risolto. avevo messo l'interi prima della funzione main()
P.S: scusate se non ho modificato il post, non sò perche non me lo ha fatto modificare. |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 18 Feb 2009 21:11 Oggetto: |
|
|
SverX ha scritto: | freemind ha scritto: | tieni conto che la printf è una funzione di c e non di c++ però. |
a me sembra tutto C  |
Ok, intendevo quello ma mi ero focalizzato sulla printf
sevenjeak ha scritto: |
Che editor uso?
Cmq come editor uso Boirland C++ alla versione 5.0.
Ma cmq credo il problema non sia quello, visto che mi hanno detto in gilo che C++ incorpora anche il C.
|
Non è vero, dipende dal compilatore. Comunque i compilatori C++ di Borland compilano anche il C.
Però è strano che il C++ 5.0 ti dia l'errore posizionando globali le variabili.
Potrebbe essere che hai qualche impostazione "strana" nell'ambiente di sviluppo.
(qualche vecchia versione ci C, mi par di ricordare, prevedeva una sintassi un po' diversa per le var globali... è passato un bel po' di tempo da quei tempi...) |
|
Top |
|
 |
sevenjeak Semidio


Registrato: 04/02/08 22:05 Messaggi: 308 Residenza: Roma
|
Inviato: 18 Feb 2009 22:13 Oggetto: |
|
|
freemind ha scritto: |
Però è strano che il C++ 5.0 ti dia l'errore posizionando globali le variabili. |
Che intendi dire con " posizionando globali le variabili "? |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 18 Feb 2009 23:01 Oggetto: |
|
|
In c e c++ una variabile è visibile dal punto in cui è dichiarata in poi.
Posizionare la dichiarazione di una var prima del main (ed eventualmente prima dei prototipi delle funzioni definite dallo sviluppatore) implica creare una variabile globale.
Esempio:
Codice: |
#include <stdio.h>
int y;
void funzione();
int main()
{
int x=5;
printf("x vale %d\n",x);
funzione();
return 0;
}
void funzione()
{
int x=13;
printf("x dentro funzione vale %d\n",x);
}
|
Le variabili x dentro a main() e dentro a funzione sono dette variabili locali perchè finiscono di esistere con la terminazione della funzione.
Se esegui il programmino vedrai che la prima printf stamperà 5 e l'altra (quella dentro a funzione()) stamperà 13. Ogni variabile non ha nulla a che vedere con l'altra.
y invece che è definita fuori dal main e prima del proto di funzione() è visibile a tutto il programma: viene detta quindi variabile globale e termina la sua vita quando il programma finisce.
In C e C++ y viene in automatico inizializzata a zero, il valore di default degli interi definiti globali; se invece le x dentro a main e a funzione non fossero inizializzate allora non sapremmo che cosa le printf butterebbero fuori.
Nel caso dentro le funzioni venisse definita una var y, questa "nasconderebbe" quella globale.
P.S.
Non so se il programma ti si compila visto il problema che avevi quando hai aperto il 3d
P.P.S
Non ho provato il codice |
|
Top |
|
 |
sevenjeak Semidio


Registrato: 04/02/08 22:05 Messaggi: 308 Residenza: Roma
|
Inviato: 19 Feb 2009 22:02 Oggetto: |
|
|
Ora ho capito, cmq ora non ho tempo di provarlo, lo provero quando avro tempo. |
|
Top |
|
 |
|