Bonjours.
J'éprouve quelque difficulté a saisir la source d'un problème lié a fgetc(fichier)
dans une des boucles while de ma fonction Mot_Secr().
Voici le code :
}
else
{
printf("Impossible d'ouvrir le fichier list.txt");
}
}
char lireCaractere()
{
char caractere = 0;
caractere = getchar(); // On lit le premier caractère
caractere = toupper(caractere); // On met la lettre en majuscule si elle ne l'est pas déjà
// On lit les autres caractères mémorisés un à un jusqu'à l'\n (pour les effacer)
while (getchar() != '\n') ; // il y a un ";" car c'est une boucle minimaliste "Technique de programmeur"
return caractere; // On retourne le premier caractère qu'on a lu
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
espie
In article , clapannac wrote:
Bonjours. J'éprouve quelque difficulté a saisir la source d'un problème lié a fgetc(fichier) dans une des boucles while de ma fonction Mot_Secr(). Voici le code : void Mot_Secr() { char caractereActuel = 0;
[...]
caractereActuel = fgetc(fichier);
pas besoin d'aller chercher plus loin, c'est LE piege a debutants.
Tu as un cours ou un bouquin ? ca doit y etre mentionne precisement.
fgetc() te renvoie une valeur qui peut etre un char, ou EOF.
Probleme: toutes les valeurs possibles de char peuvent etre dans le fichier.
-> EOF est forcement une valeur distincte. -> la valeur renvoyee par fgetc() n'est pas de type char, c'est trop petit. On utilise un type entier plus grand: en l'occurrence int.
L'utilisation correcte de fgetc procede comme suit, en gros.
int r; // et non pas char
r = fgetc(fichier);
if (r == EOF) { // ben c'etait pas un caractere heim, on traite... ... } else { // okay, la c'est un vrai caractere char c = r; // et la conversion est licite... ... }
In article <7uWdnTC5Busba5fSRVn_vwA@giganews.com>,
clapannac <nospam_kohac_69@hotmail.fr.invalid> wrote:
Bonjours.
J'éprouve quelque difficulté a saisir la source d'un problème lié a
fgetc(fichier)
dans une des boucles while de ma fonction Mot_Secr().
Voici le code :
void Mot_Secr()
{
char caractereActuel = 0;
[...]
caractereActuel = fgetc(fichier);
pas besoin d'aller chercher plus loin, c'est LE piege a debutants.
Tu as un cours ou un bouquin ? ca doit y etre mentionne precisement.
fgetc() te renvoie une valeur qui peut etre un char, ou EOF.
Probleme: toutes les valeurs possibles de char peuvent etre dans le fichier.
-> EOF est forcement une valeur distincte.
-> la valeur renvoyee par fgetc() n'est pas de type char, c'est trop petit.
On utilise un type entier plus grand: en l'occurrence int.
L'utilisation correcte de fgetc procede comme suit, en gros.
int r; // et non pas char
r = fgetc(fichier);
if (r == EOF) { // ben c'etait pas un caractere heim, on traite...
...
} else { // okay, la c'est un vrai caractere
char c = r; // et la conversion est licite...
...
}
Bonjours. J'éprouve quelque difficulté a saisir la source d'un problème lié a fgetc(fichier) dans une des boucles while de ma fonction Mot_Secr(). Voici le code : void Mot_Secr() { char caractereActuel = 0;
[...]
caractereActuel = fgetc(fichier);
pas besoin d'aller chercher plus loin, c'est LE piege a debutants.
Tu as un cours ou un bouquin ? ca doit y etre mentionne precisement.
fgetc() te renvoie une valeur qui peut etre un char, ou EOF.
Probleme: toutes les valeurs possibles de char peuvent etre dans le fichier.
-> EOF est forcement une valeur distincte. -> la valeur renvoyee par fgetc() n'est pas de type char, c'est trop petit. On utilise un type entier plus grand: en l'occurrence int.
L'utilisation correcte de fgetc procede comme suit, en gros.
int r; // et non pas char
r = fgetc(fichier);
if (r == EOF) { // ben c'etait pas un caractere heim, on traite... ... } else { // okay, la c'est un vrai caractere char c = r; // et la conversion est licite... ... }