Mais c'est quoi ce sirque!!!! [Résolu]

Signaler
Messages postés
7
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
26 août 2005
-
Messages postés
257
Date d'inscription
dimanche 22 août 2004
Statut
Membre
Dernière intervention
29 septembre 2010
-
salut!

bon, je débute en C , mais là j'ai qqs problèmes a la con :

1_ au moment ou je compile ceci:

#include <stdio.h>

main()

{



int a;



printf("donner un nombre");

scanf("%d",&a);

printf("ce nombre est %d",a);

}



quand je tape un nombre ,il quitte le programme, pquoi?

2_ quelle est la séquence qui sert a éffacer l'ecran? car"\ 033[2j" ne marche pas????

3_ quelle est la différence si j'écrit" int main()", ou "void main(void)", ou "main()"????



lol,merci!

12 réponses

Messages postés
257
Date d'inscription
dimanche 22 août 2004
Statut
Membre
Dernière intervention
29 septembre 2010
3
certain compilateur inpose que main () retourne un entier, mais cela depend du compilateur C...



pour etre sur, écrit toujour int main (void)



mais ton de cas la, place à la fin de main () l'instrction return 0, ce qui signifie que tout c'est bien deroulé.
Messages postés
7
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
26 août 2005

ah,j'ai oublié j'utilise Dev-C++
Messages postés
207
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2006

Salut !

Alors, dans l'ordre :

- il quitte le programme car tu es en mode console : une execution
linéaire. Quand tu as fini toutes tes instructions, le programme se
ferme. Pour éviter ça, 2 solutions : getch() (attente d'un caractère)
ou system("pause") (affichage du texte : "appuyez sur une touche pour
continuer")



- Pour effacer l'écran, \033[2j est la version Linux je crois, pour un programme console (ou DOS), utilise system("cls")

- int main() : tu dois retourner un entier à chaque endroit où tu
termine ton programme (cas d'une impossibilité de lecture de
fichier....)

ça sert surtout en debugage ou lorsque tu peux récupérer cette valeur
dans une autre app : ça te permet de savoir si ton programme a réussi
ce qu'il voulait faire ou non.

void main() : tu ne retourne rien => tu considère que la valeur de retour sde ton programme n'a aucune importance (ça arrive)

main() : c'est pas très propre, en C++ tu dois toujours indiquer quel
est le type de valeur retourné par la fonction. En C, cet oubli
correspond par défaut à un "int main()"
Messages postés
700
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
4
salut,

on écrit un cirque et pas un sirque
Messages postés
7
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
26 août 2005

lol!,

au fait simitiers quand je compile une fonction void main() , il
m'affiche un message disant que main doit renvoyer un entier, donc il
faut toujours écrire int main()????
Messages postés
7
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
26 août 2005

ah, j'ai oublié la fonction : clrscr() sert a effacer l'ecran? , si oui de quelle bibiliothèque s'agit -t-il?
Messages postés
7
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
26 août 2005

ah, j'ai oublié la fonction : clrscr() sert a effacer l'ecran? , si oui de quelle bibiliothèque s'agit -t-il?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
clrscr() = system("pause")
Messages postés
7
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
26 août 2005

humm....quand j'écris

clrscr(); il me dit que la fonction n'est pas déclarée pourtant j'ai inclus stdlib.h! hein?

sinon pour void main(), t'as une idée?
Messages postés
207
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2006

pour void main(), là je vois vraiment pas. Normalement ça passe tout seul...

Pour ce qui est de clrscr(), elle n'a pas l'air d'être dispo sous tous
les compilos : j'ai déjà eu le pb : la fonction est introuvable.

J'ai pu la chopper une fois dans un fichier trouvé au hasard : conio2.h (je sais plus).

De toute façon, clrscr() correspond à la fonction system("clr") => efface l'écran console.



Pour void main(), essaie de compiler ça :



1)

#include <stdio.h>

void main()

{

printf( "test\n" );

}



2)

#include <stdio.h>

void main()

{

printf( "test\n" );

return ;

}



Regarde si ça marche.
Messages postés
7
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
26 août 2005

toujours pas! il m'affiche: 'main' must return int!

ça marche chez toi???
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
quel con j'ai dit system("pause"), c'est bien sur system("cls")...
main retourne un int:
int main()
{
system("cls");
return 0; // facultatif (cas particulier de main)
}