PDA

View Full Version : Aiuto c++


nothinghr
03-12-2003, 11:08
Non so programmare ho scritto questo semplice programma:

main()
{
printf("welcome ");
printf("to c++!\n");
}
mi da' questo errore :

C:\MSDEV\BIN\Text1.cpp(5) : warning C4508: 'main' : function should return a value; 'void' return type assumed
Error executing cl.exe.
Text1.exe - 3 error(s), 1 warning(s)

che e'?

ilsensine
03-12-2003, 11:13
Non sai programmare, ma forse sai leggere :p

main deve restituire un valore "int"; normalmente il suo prototipo è

int main()
{
...
return 0;
}

ilsensine
03-12-2003, 11:50
Cmq potrebbe solo essere una parte del problema (in realtà è mostrato dal compilatore come warning, ma allora l'errore dov'è?)

cionci
03-12-2003, 12:09
Ci vuole l'include !!!

#include <stdio.h> da mettere come prima riga...

Comunque hai riportato solo una parte degli errori...

nothinghr
03-12-2003, 12:15
Originariamente inviato da cionci
Ci vuole l'include !!!

#include <stdio.h> da mettere come prima riga...

Comunque hai riportato solo una parte degli errori...
e' vero l'h oscoperto dopo.. ma come si fa a far girare il programma senza che si chiuda automaticamente? uso il prompt?

ilsensine
03-12-2003, 12:15
Sì o lo lanci dal prompt o ci metti una pausa alla fine...

nothinghr
03-12-2003, 12:51
Originariamente inviato da ilsensine
Sì o lo lanci dal prompt o ci metti una pausa alla fine...
che vuol dire ci metto una pausa alla fine?

Molz
03-12-2003, 13:19
Con fare pausa penso abbia inteso aggiungere 1 istruzione ke fa fare pausa all'applicazione facendole aspettare 1 input dall'utente.

Ad esempio in windows aggiungi

system("pause");

prima del return 0;

In Linux nn mi ricordo ma puo' andare bene getchar();

La stessa cosa la ottieni scrivendo 1 file .bat cosi'

mioProgramma.exe
pause

nothinghr
03-12-2003, 19:08
Originariamente inviato da Molz
Con fare pausa penso abbia inteso aggiungere 1 istruzione ke fa fare pausa all'applicazione facendole aspettare 1 input dall'utente.

Ad esempio in windows aggiungi

system("pause");

prima del return 0;

In Linux nn mi ricordo ma puo' andare bene getchar();

La stessa cosa la ottieni scrivendo 1 file .bat cosi'

mioProgramma.exe
pause
Ok grazie a tutti

nothinghr
04-12-2003, 19:35
scusate ma non so trovare l'errore!! Devo cercare un certo valore all'interno di un vettore in questo caso il valore 8.

#include<stdio.h>
#include<stdlib.h>

int v[]={2,3,1,5,4,8,9,6,7,0};
int valore,i,dim,posizione;
main()
{

dim=10;
valore=8;
posizione=-1;
for(i=0,i<10,i++)
if(v[i]==valore) posizione=i;
if(posizione==-1) printf("non ho trovato il valore");

else printf("ho trovato il valore %d nella posizione %d",posizione,valore);
return 0;
}

mi da' quest'errore : error C2143: syntax error : missing ';' before ')'

ma dove manca?!?!?!?

cionci
04-12-2003, 19:37
Serve il ; al posto della , all'interno del for...

nothinghr
04-12-2003, 19:44
Originariamente inviato da cionci
Serve il ; al posto della , all'interno del for...
Azz sono proprio un cane :cry:

nothinghr
04-12-2003, 19:56
#include<stdio.h>

char mese[];
int g;
main()
{
printf("In che mese siamo?\n");
scanf("%s",mese);
printf("Che giorno e?\n");
scanf("%d,&g);
printf("oggi e' il giorno %d del mese %s\n",g,mese);
return 0;
}

error C2001: newline in constant
error C2146: syntax error : missing ')' before identifier 'printf'

Per oggi e' l'ultimo giuro!:D

Luc@s
04-12-2003, 20:05
#include<stdio.h>

char mese[];
int g;
main()
{
puts("In che mese siamo?\n");
scanf("%s",&mese);
puts("Che giorno e?\n");
scanf("%d",&g);
printf("oggi e' il giorno %d del mese %s\n",g,mese);
return 0;
}

nothinghr
04-12-2003, 20:12
Originariamente inviato da Luc@s
#include<stdio.h>

char mese[];
int g;
main()
{
puts("In che mese siamo?\n");
scanf("%s",&mese);
puts("Che giorno e?\n");
scanf("%d",&g);
printf("oggi e' il giorno %d del mese %s\n",g,mese);
return 0;
}
Perche' puts cos'e'? e poi nelle stringhe non bisogna omettere &? tipo
scanf(""%s",mese)?
comunque grazie provo cosi'

Luc@s
04-12-2003, 20:16
Originariamente inviato da nothinghr
Perche' puts cos'e'? e poi nelle stringhe non bisogna omettere &? tipo
scanf(""%s",mese)?
comunque grazie provo cosi'

puts() è come printf ma nn accetta i %, ma gli escape(\) si.
& vuol dire "indirizzo di".
Cosi serve

char mese[];
scanf("%s",&mese);

Cosi no

har * mese;
scanf("%s",mese);

Poiche (char *) è un puntatore, cioe variabile che contiene indirizzo di altra variabile.


Ciao

cionci
04-12-2003, 20:30
char mese[];
scanf("%s",&mese);

Non ci vuole la & e bisogna specificare la dimensione del vettore...
Anche così non va bene:

char * mese;
scanf("%s",mese);

Così va bene:

char mese[10];
scanf("%s",mese);

nothinghr
04-12-2003, 22:00
Ho scritto cosi' ma continua a darmi i soliti 2 errori di prima:

#include<stdio.h>

char mese[10];
int g;
main()
{
puts("In che mese siamo?\n");
scanf("%s",mese);
puts("Che giorno e?\n");
scanf("%d",&g);
printf("oggi e' il giorno %d del mese %s\n",g,mese);
return 0;
}

Berno
06-12-2003, 00:58
Forse se fai:

return(0);

...al posto di:

return 0;

Potrebbe funzionare meglio...

ri
06-12-2003, 02:41
guarda che quel codice è corretto...

nothinghr
06-12-2003, 11:45
Originariamente inviato da ri
guarda che quel codice è corretto...
infatti se premo compile mi dice 0 errori ma se premo build mi da' i 2 errori e non mi fa proseguire.. boh!

nothinghr
06-12-2003, 11:46
Come non detto scusate