Dev C++ me poses des problèmes

Résolu
Sneakito Messages postés 13 Date d'inscription samedi 28 mai 2005 Statut Membre Dernière intervention 4 juin 2005 - 29 mai 2005 à 13:20
bayeto Messages postés 224 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 18 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;
}
}

Merci d'avance.

4 réponses

bayeto Messages postés 224 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 18 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.


mayonaise tournera, bientôt, très bientôt...
3
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
29 mai 2005 à 13:24
salut,

essaie ca:



#include <stdio.h> // pour printf



// void main() est pas standard je crois (à confirmer)

int main(int argc, char* argv[])

{

int n;

n=1;

while (n<6)

{

printf("n=%d \n",n);

n=n+2;

}

return 0;

}



a+
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
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++)
0
Sneakito Messages postés 13 Date d'inscription samedi 28 mai 2005 Statut Membre Derniè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?
0
Rejoignez-nous