© Éditions Eyrolles
VII
Table des matières
Programmer en langage C
2
Les possibilités de la fonction scanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.1 Les principaux codes de conversion de scanf . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.2 Premières notions de tampon et de séparateurs . . . . . . . . . . . . . . . . . . . . . . . . 57
2.3 Les premières règles utilisées par scanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.4 Imposition d’un gabarit maximal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.5 Rôle d’un espace dans le format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.6 Cas où un caractère invalide apparaît dans une donnée . . . . . . . . . . . . . . . . . . 59
2.7 Arrêt prématuré de scanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.8 La syntaxe de scanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.9 Problèmes de synchronisation entre l’écran et le clavier . . . . . . . . . . . . . . . . . . 61
2.10 En cas d’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.11 La macro getchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5 Les instructions de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
1
L’instruction if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
1.1 Blocs d’instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
1.2 Syntaxe de l’instruction if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
1.3 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
1.4 Imbrication des instructions if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2
Instruction switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.1 Exemples d’introduction de l’instruction switch . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.2 Syntaxe de l’instruction switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3
L’instruction do… while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.1 Exemple d’introduction de l’instruction do... while . . . . . . . . . . . . . . . . . . . . . . 78
3.2 Syntaxe de l’instruction do... while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.3 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4
L’instruction while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.1 Exemple d’introduction de l’instruction while . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.2 Syntaxe de l’instruction while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5
L’instruction for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.1 Exemple d’introduction de l’instruction for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.2 Syntaxe de l’instruction for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6
Les instructions de branchement inconditionnel : break , continue et goto . . . 86
6.1 L’instruction break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.2 L’instruction continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.3 L’instruction goto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6 La programmation modulaire et les fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . 93
1
La fonction : la seule sorte de module existant en C . . . . . . . . . . . . . . . . . . . . . . 94
2
Exemple de définition et d’utilisation d’une fonction en C . . . . . . . . . . . . . . . . . . 95
Delannoy Livre.book Page VII Mercredi, 6. mai 2009 4:25 16
VII
Table des matières
Programmer en langage C
2
Les possibilités de la fonction scanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.1 Les principaux codes de conversion de scanf . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.2 Premières notions de tampon et de séparateurs . . . . . . . . . . . . . . . . . . . . . . . . 57
2.3 Les premières règles utilisées par scanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.4 Imposition d’un gabarit maximal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.5 Rôle d’un espace dans le format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.6 Cas où un caractère invalide apparaît dans une donnée . . . . . . . . . . . . . . . . . . 59
2.7 Arrêt prématuré de scanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.8 La syntaxe de scanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.9 Problèmes de synchronisation entre l’écran et le clavier . . . . . . . . . . . . . . . . . . 61
2.10 En cas d’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.11 La macro getchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5 Les instructions de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
1
L’instruction if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
1.1 Blocs d’instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
1.2 Syntaxe de l’instruction if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
1.3 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
1.4 Imbrication des instructions if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2
Instruction switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.1 Exemples d’introduction de l’instruction switch . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.2 Syntaxe de l’instruction switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3
L’instruction do… while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.1 Exemple d’introduction de l’instruction do... while . . . . . . . . . . . . . . . . . . . . . . 78
3.2 Syntaxe de l’instruction do... while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.3 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4
L’instruction while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.1 Exemple d’introduction de l’instruction while . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.2 Syntaxe de l’instruction while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5
L’instruction for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.1 Exemple d’introduction de l’instruction for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.2 Syntaxe de l’instruction for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6
Les instructions de branchement inconditionnel : break , continue et goto . . . 86
6.1 L’instruction break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.2 L’instruction continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.3 L’instruction goto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6 La programmation modulaire et les fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . 93
1
La fonction : la seule sorte de module existant en C . . . . . . . . . . . . . . . . . . . . . . 94
2
Exemple de définition et d’utilisation d’une fonction en C . . . . . . . . . . . . . . . . . . 95
Delannoy Livre.book Page VII Mercredi, 6. mai 2009 4:25 16
