« Programmation C/Entrées/sorties » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Tavernierbot (discussion | contributions)
m Robot : Corrige les liens pointants sur des redirections
Ligne 239 :
* hh : indique que l'entier est un <tt>[un]signed char</tt> au lieu d'un <tt>[unsigned] int</tt> ;
* h : indique que l'entier est de type <tt>[unsigned] short</tt> au lieu d'un <tt>[unsigned] int</tt> ;
* l : pour les entiers, le type attendu ne sera plus <code>int</code> mais <code>long int</code> et pour les chaines de caractères, il sera de type <code>wchar_t *</code> (c.f section [[Programmation C /Chaînes de caractères|chaînes de caractères]]).
* ll : cet attribut ne concerne que les types entiers, où le type attendu sera <code>long long int</code>.
* L : pour les types réels, le type attendu sera <code>long double</code>.
Ligne 266 :
|}
 
<tt>hh</tt> et <tt>ll</tt> sont des nouveautés de C99. On notera qu'avec l'attribut <tt>hh</tt> et les formats <tt>n</tt>, <tt>d</tt>, <tt>i</tt>, <tt>o</tt>, <tt>x</tt> ou <tt>X</tt>, le type est <tt>signed char</tt> et non <tt>char</tt>. En effet, comme vu dans le chapitre [[Programmation C /Types de base|Types de base]], le type <tt>char</tt> peut être signé ou non, suivant l'implémentation. Ici, on est sûr de manipuler le type caractère signé.
 
Quelques exemples :
Ligne 555 :
Qui dit entrées/sorties dit forcément une pléthore de cas d'erreurs à gérer. C'est souvent à ce niveau que se distinguent les « bonnes » applications des autres : fournir un comportement cohérent face à ces situations exceptionnelles. Dans la description des fonctions précédentes, il est fait mention que, en cas d'erreur, un code spécial est retourné par la fonction. De plus, on dispose de la fonction <code>int ferror( FILE * );</code>, qui permet de savoir si une erreur a été déclenchée sur un fichier lors d'un appel antérieur à une fonction de la bibliothèque standard.
 
Si ces informations permettent de savoir s'il y a eu une erreur, elles ne suffisent pas à connaître la cause de l'ereur. Pour cela, la bibliothèque <code>stdio</code> repose sur la variable globale ''errno'', dont l'utilisation est décrite dans le chapitre sur la [[Programmation C /Erreurs|gestion d'erreur]].