cronos6 a écrit :
est ce que vous pouvez me donner la différence entre : - le & et le &&
- faire tant que(do...while) et tant que (while...) <== avec exemple svp
- " " et ' '
- à quoi sert le fflush (mon prof m'a dit que ça servait à vider qqch, mais je me rappel plus quoi)
Merci d'avance!!!
|
au niveau de types
& est int * int -> int (logique bit à bit)
&& est de int * int -> 0 ou 1 (si l'un des 2 paramètre est zéro, le résultat est zéro, sinon c'est 1).
Code :
- do {
- printf("coucou\n" );
- } while (0);
|
affiche coucou, car on exécute le bloc avant de regarder le test du while (on refait un tour s'il est vrai)
Code :
- while (0)
- printf("coucou\n" );
|
n'affiche rien car on regarde le test du while avant d'exécuter le bloc (on fait un tour s'il est vrai).
" " est la chaine de caractères qui ne contient qu'un espace.
' ' est le caractère espace.
on a donc " " qui est équivalent à {' ', '\0'} c'est expliqué dans ton cours pourquoi.
fflush sert à vider la sortie d'affichage.
Code :
- int main() {
- char *ptr = (char *)0;
- printf("coucou" );
- printf("%c\n", *ptr);
- return 0;
- }
|
te fait un gros paté.
Code :
- int main() {
- char *ptr = (char *)0;
- printf("coucou" );
- fflush(0);
- printf("%c\n", *ptr);
- return 0;
- }
|
t'affiche "coucou" avant de te faire un gros paté.
Le principe c'est qu'on n'affiche qu'à certains moments la sortie, mais si on fait (par exemple) un gros paté, toute la sortie qui n'a pas été affichée passe à la trappe (ce qui est très chiant quand tu cherches où est le bug à coups de printf).
fflush t'assure que le programme ne continuera pas tant que l'utilisateur n'aura pas à l'écran tout ce que tu lui a écrit avant le fflush. Même s'il y a un réseau entre toi et l'utilisateur (telnet et rlogin par ex.).
fflush ne vide jamais les tampons d'entrée.