Sneakito
Messages postés13Date d'inscriptionsamedi 28 mai 2005StatutMembreDernière intervention 4 juin 2005
-
29 mai 2005 à 13:20
bayeto
Messages postés224Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention18 octobre 2010
-
29 mai 2005 à 14:24
Bon voilà,j'ai un projet à réaliser et j'utilise Dev C++ sur un environement Windows.Je décide de tester cet éditeur par une premiere fonction très simple qui consiste à afficher des choses(printf) et ça marche.Mais quand j'essaye une fonction d'un cours(donc qui est censé marché) avec instruction itérative(while) il ne veut pas le compiler! La deuxième ligne ou se trouve l'accolade { est mise en rouge et le message en bas de l"editeur me dit :
pour la ligne 2: 'main' must return 'int'
juste en dessous il met : In function 'int main(...)':
pour la ligne 7: `puts' undeclared (first use this function)
avec juste en dessous : (Each undeclared identifier is reported only once for each function it appears in.)
Voici l'instruction très simple que j'ai frappé qui est pourtant sans erreur (je l'ai déja utilisé en cours sans problèmes) :
void main()
{
int n;
n=1;
while (n<6)
{
printf("n=%d \n",n);
n=n+2;
}
}
bayeto
Messages postés224Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention18 octobre 2010 29 mai 2005 à 14:24
avec les fichiers .c c'est le compilateur C qui est appelé. Il est beaucoup (mais vraiment beacoup) plus permissif que celui du C++ (.cpp).
Par exemple le compilo C ne pose pas trop de problème si une fonction qui doit retourner une valeur ne le fait pas (simple avertissement)...pas le C++: il genère une erreur.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 29 mai 2005 à 13:50
Je crois que int main() est standard.
Si tu compiles en C, normalement pas besoin des includes (bien c'est
quand même mieux de les mettre). Vérifie donc ta ligne de commandes (tu
dois avoir gcc et non g++)
Sneakito
Messages postés13Date d'inscriptionsamedi 28 mai 2005StatutMembreDernière intervention 4 juin 2005 29 mai 2005 à 14:01
ça marche en effet, merci.:)
Mais je ne comprends pas vraiment pourquoi ça marchait pas, avec l'instruction suivante :
void main()
{
int n,age;
printf("Votre annee de naissance ?");
scanf("%d",&n);
age=2050-n;
printf("Vous aurez %d ans en 2050\n",age);
}
Je n'ai eu aucun problème et pas eu besoin de mettre un include stdio.h pour que le print fonctionne. De plus cette dernière avec pour instruction .c alors que celle avec while avait pour extension .cpp.C'est quoi la difference?