Mais c'est quoi ce sirque!!!!

Résolu
namgalsipsclar Messages postés 7 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 26 août 2005 - 25 août 2005 à 10:26
vinc1008881 Messages postés 257 Date d'inscription dimanche 22 août 2004 Statut Membre Dernière intervention 29 septembre 2010 - 26 août 2005 à 16:21
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

vinc1008881 Messages postés 257 Date d'inscription dimanche 22 août 2004 Statut Membre Dernière intervention 29 septembre 2010 3
26 août 2005 à 16:21
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é.
3
namgalsipsclar Messages postés 7 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 26 août 2005
25 août 2005 à 10:37
ah,j'ai oublié j'utilise Dev-C++
0
simtiers Messages postés 207 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 2 novembre 2006
25 août 2005 à 10:45
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()"
0
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
25 août 2005 à 17:15
salut,

on écrit un cirque et pas un sirque
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
namgalsipsclar Messages postés 7 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 26 août 2005
25 août 2005 à 21:17
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()????
0
namgalsipsclar Messages postés 7 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 26 août 2005
25 août 2005 à 21:21
ah, j'ai oublié la fonction : clrscr() sert a effacer l'ecran? , si oui de quelle bibiliothèque s'agit -t-il?
0
namgalsipsclar Messages postés 7 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 26 août 2005
25 août 2005 à 21:22
ah, j'ai oublié la fonction : clrscr() sert a effacer l'ecran? , si oui de quelle bibiliothèque s'agit -t-il?
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
25 août 2005 à 21:24
clrscr() = system("pause")
0
namgalsipsclar Messages postés 7 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 26 août 2005
25 août 2005 à 22:19
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?
0
simtiers Messages postés 207 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 2 novembre 2006
26 août 2005 à 10:39
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.
0
namgalsipsclar Messages postés 7 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 26 août 2005
26 août 2005 à 11:09
toujours pas! il m'affiche: 'main' must return int!

ça marche chez toi???
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
26 août 2005 à 16:08
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)
}
0
Rejoignez-nous