Inout
Des fonctions simples de lecture au clavier en C.
inout.h
Aller à la documentation de ce fichier.
1/* Wrapper class for students for IO in C.
2 Copyright (C) 2017 Pierre Courtieu.
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public License
6 as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details (see
13 <http://www.gnu.org/licenses/>).
14*/
15
16/**
17 * \file inout.h
18 * \brief Des fonctions simples de lecture au clavier en C.
19 * \author Pierre Courtieu
20 * \version 0.1
21 * \date 17 août 2017
22 *
23 * À utiliser dans le cours d'initiation à la programmation. DUT FIP CNAM.
24 *
25 */
26
27#include<stdio.h>
28
29/**
30 @brief Lecture d'une chaîne dans un fichier avec allocation.
31
32 Lit les caractères dans le fichier (à la position corante jusqu'au
33 prochain saut de ligne (compris) et retourne une chaine de
34 caractères (`char *`) contenant les caractères (excepté le saut de
35 ligne).
36
37 EN PRINCIPE il faut faire `free` dessus pour la libérer quand on
38 en n'a plus besoin. Pour les débutants on ne le fera pas (mais
39 c'est mal). */
40char * lireStringFile(FILE * input);
41
42/**
43 @brief Lecture d'une chaîne au clavier avec allocation.
44
45 Lit les caractères tapés par l'utilisateurs jusqu'au prochain saut
46 de ligne (compris) et retourne une chaine de caractères (`char *`)
47 contenant ces caractères (excepté le saut de ligne).
48
49 EN PRINCIPE il faut faire `free` dessus pour la libérer quand on
50 en n'a plus besoin. Pour les débutants on ne le fera pas (mais
51 c'est mal). */
52char * lireString();
53
54/** \brief Lecture des mots d'un fichiers + modifie le deuxième
55 arguments (nb de mots lus).
56
57 Retourne un tableau de chaines de charactères contenant tous les
58 mots du fichier nomFicher.
59
60 La fonction modifie également la valeur du deuxième argument afin
61 qu'il contienne le nombre de mots dans le tableau retourné.
62 **/
63char ** lireFichierParMots(char * nomFicher, int* nombreMots);
64
65/** \brief Lecture d'un entier suivi d'un saut de ligne.
66
67 Si d'autres caractères sont tapés entre le caractère et le saut de
68 ligne, ils sont ignorés.
69
70 \return l'entier lu
71*/
72int lireInt();
73
74/** \brief comme liseInt() mais avec une valeur à retourner en cas
75 d'échec de lecture.
76
77 Contrairement à `lireInt` cette fonction ne fait donc pas planter
78 votre programme si l'utilisateur tape autre chose qu'un entier ou
79 tape seulement "entrée".
80
81 En revanche la fonction plante toujours si la fin de fichier est
82 lue (si on tape ctrl-d ou si on atteint la fin d'un fichier
83 redirigé vers l'entrée standard).
84
85 \return l'entier lu ou defaut si pas d'entier lu.
86*/
87int lireIntDefaut(int defaut);
88
89/** \brief Lecture d'un caractère suivi d'un saut de ligne.
90
91 Si d'autres caractères sont tapés entre le caractère et le saut de
92 ligne, ils sont ignorés.
93
94 \return le caractère lu
95*/
96char lireChar();
97
98/** \brief comme lireChar() mais avec une valeur à retourner en cas
99 d'échec de lecture.
100
101 Contrairement à `lireChar` cette fonction ne fait donc pas planter
102 votre programme si l'utilisateur tape seulement "entrée".
103
104 En revanche la fonction plante toujours si la fin de fichier est
105 lue (si on tape ctrl-d ou si on atteint la fin d'un fichier
106 redirigé vers l'entrée standard).
107
108 \return l'entier lu ou defaut si pas d'entier lu.
109*/
110char lireCharDefaut(char defaut);
111
112/** \brief Lecture d'un double suivi d'un saut de ligne.
113
114 Si des caractères sont tapés entre le double et le saut de ligne,
115 ils sont ignorés.
116
117 \return le caractère lu
118*/
119double lireDouble();
120
121/** \brief Écrit dans le terminal la date actuelle. */
122void ecrireDate();
123
124/** \brief Retourne le numéro de l'heure actuelle (entre 0 et 23). */
125int heureActuelle();
126
127/** \brief Retourne le numéro de la minute actuelle (entre 0 et 59). */
128int minuteActuelle();
129
130/** \brief Retourne le numéro de la seconde actuelle (entre 0 et 59). */
131int secondeActuelle();
132
133/** \brief Retourne le numéro de l'année actuelle (entre 0 et 23). */
134int anneeActuelle();
135
136/** \brief Retourne le numéro du mois actuel (entre 1 et 12). */
137int moisActuel();
138
139/** \brief Retourne le numéro du jour actuel (entre 1 et 31). */
140int jourActuel();
141
142
143/** \brief Écrit dans le terminal la chaîne de caractères `s`. */
144void ecrireString(char s[]);
145
146/** \brief Écrit dans le terminal l'entier `n`. */
147void ecrireInt(int n);
148
149/** \brief Écrit dans le terminal le double `n`. */
150void ecrireDouble(double n);
151
152/** \brief Écrit dans le terminal le caractère ``c`. */
153void ecrireChar(char c);
154
155/** \brief Écrit dans le terminal le long `n`. */
156void ecrireLong(long n);
157
158/** \brief Écrit un saut deligne dans le terminal. */
159void ecrireSautDeLigne();
160
161/** \brief Pause jusqu'à ce que l'utilisateur appuie sur entrée.
162
163 Tous les caractères tapés avant le entrée sont ignorés et
164 oubliés. */
165void pause();
166
167/** \brief Fonction de debugage: affiche un caractère. Les caractères
168 `\n` `\r` et `\0` sont affichés tel quels. */
169void debugChar(char c);
170
171/** \brief Fonction de debugage: affiche une chaine de cractère en
172 montrant les `\n` `\r` et `\0`. */
173void debugString(char * s);
void ecrireLong(long n)
Écrit dans le terminal le long n.
Definition: inout.c:421
int lireInt()
Lecture d'un entier suivi d'un saut de ligne.
Definition: inout.c:262
void ecrireDate()
Écrit dans le terminal la date actuelle.
Definition: inout.c:341
void ecrireString(char s[])
Écrit dans le terminal la chaîne de caractères s.
Definition: inout.c:425
void ecrireInt(int n)
Écrit dans le terminal l'entier n.
Definition: inout.c:409
char * lireString()
Lecture d'une chaîne au clavier avec allocation.
Definition: inout.c:175
double lireDouble()
Lecture d'un double suivi d'un saut de ligne.
Definition: inout.c:326
int heureActuelle()
Retourne le numéro de l'heure actuelle (entre 0 et 23).
Definition: inout.c:353
void debugChar(char c)
Fonction de debugage: affiche un caractère. Les caractères \n \r et \0 sont affichés tel quels.
Definition: inout.c:104
int lireIntDefaut(int defaut)
comme liseInt() mais avec une valeur à retourner en cas d'échec de lecture.
Definition: inout.c:281
void ecrireDouble(double n)
Écrit dans le terminal le double n.
Definition: inout.c:413
char lireCharDefaut(char defaut)
comme lireChar() mais avec une valeur à retourner en cas d'échec de lecture.
Definition: inout.c:311
void pause()
Pause jusqu'à ce que l'utilisateur appuie sur entrée.
Definition: inout.c:433
char * lireStringFile(FILE *input)
Lecture d'une chaîne dans un fichier avec allocation.
Definition: inout.c:123
int minuteActuelle()
Retourne le numéro de la minute actuelle (entre 0 et 59).
Definition: inout.c:362
char lireChar()
Lecture d'un caractère suivi d'un saut de ligne.
Definition: inout.c:296
int secondeActuelle()
Retourne le numéro de la seconde actuelle (entre 0 et 59).
Definition: inout.c:371
int moisActuel()
Retourne le numéro du mois actuel (entre 1 et 12).
Definition: inout.c:389
int anneeActuelle()
Retourne le numéro de l'année actuelle (entre 0 et 23).
Definition: inout.c:398
void ecrireSautDeLigne()
Écrit un saut deligne dans le terminal.
Definition: inout.c:429
void ecrireChar(char c)
Écrit dans le terminal le caractère `c.
Definition: inout.c:417
int jourActuel()
Retourne le numéro du jour actuel (entre 1 et 31).
Definition: inout.c:380
void debugString(char *s)
Fonction de debugage: affiche une chaine de cractère en montrant les \n \r et \0.
Definition: inout.c:113
char ** lireFichierParMots(char *nomFicher, int *nombreMots)
Lecture des mots d'un fichiers + modifie le deuxième arguments (nb de mots lus).
Definition: inout.c:210