Message d'erreur
Fermé
marie12
-
14 mars 2019 à 13:02
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 15 mars 2019 à 12:41
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 15 mars 2019 à 12:41
A voir également:
- Message d'erreur
- Message - Guide
- Erreur 0x80070643 - Accueil - Windows
- Recuperer message whatsapp supprimé - Guide
- Message d'absence thunderbird - Guide
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
2 réponses
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié le 14 mars 2019 à 14:25
Modifié le 14 mars 2019 à 14:25
Salut marie12,
Pour afficher un message d'erreur en C, tu le fais en principe sur le flux stderr, comme ceci :
Si ta question porte sur autre chose, peux-tu en dire plus ?
Dal
Pour afficher un message d'erreur en C, tu le fais en principe sur le flux stderr, comme ceci :
fprintf(stderr, "Erreur: seuls des mots de taille %d et ne " "contenant que des lettres de l'alphabet sont permis\n", n);
Si ta question porte sur autre chose, peux-tu en dire plus ?
Dal
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié le 14 mars 2019 à 14:53
Modifié le 14 mars 2019 à 14:53
Rebonjour marie12,
Si ce que tu veux c'est contrôler que la saisie de l'utilisateur remplit certaines conditions que tu as posées, ou qui te sont imposées, ta question est mal formulée.
Tu peux contrôler la taille de la saisie (s'il s'agit bien d'une saisie au clavier) de plusieurs façons. Une façon de faire qui te permettra facilement de vérifier si le nombre exact de
Cela est rendu possible par le fonctionnement de
http://www.cplusplus.com/reference/cstdio/fgets/
Pour vérifier si la saisie ne contient que des caractères alphabétiques, tu pourrais te servir de
http://www.cplusplus.com/reference/cctype/isalpha/
Ce sont des exemples sans connaître d'avantage le contexte de ce que tu fais, comment et pourquoi, car tu ne donnes pas de détails.
Poste ton code si tu as des questions précises.
Dal
Si ce que tu veux c'est contrôler que la saisie de l'utilisateur remplit certaines conditions que tu as posées, ou qui te sont imposées, ta question est mal formulée.
Tu peux contrôler la taille de la saisie (s'il s'agit bien d'une saisie au clavier) de plusieurs façons. Une façon de faire qui te permettra facilement de vérifier si le nombre exact de
charattendus ont été saisis est de gérer la saisie avec
fgets()dans un tableau de
charcorrectement dimensionné pour contenir la taille que tu attends y compris le
'\n'résultant de la validation par l'utilisateur et le caractère terminateur de chaîne
'\0'. Il suffit alors de vérifier que l'avant dernière position du tableau en question contient bien
'\n'.
Cela est rendu possible par le fonctionnement de
fgets():
http://www.cplusplus.com/reference/cstdio/fgets/
Pour vérifier si la saisie ne contient que des caractères alphabétiques, tu pourrais te servir de
isalpha()qui est une fonction standard du C accessible par l'entête ctype.h
http://www.cplusplus.com/reference/cctype/isalpha/
Ce sont des exemples sans connaître d'avantage le contexte de ce que tu fais, comment et pourquoi, car tu ne donnes pas de détails.
Poste ton code si tu as des questions précises.
Dal
alors bonjour dal et merci pour ta réponse, je veux demander a l'utilisateur d'introduire une suite de mots dans chaque mot je dois vérifier qu'il y'a n caractères et que tous les caractères sont des lettres de l'alphabet. alors déjà j'ai pu me débrouiller pour vérifier mes conditions puis par la suite afficher mon message d'erreur. sauf que voila moi je veux continuer d'afficher un des deux messages d'erreur (soit pour le nombre de caractères soit pour les les lettres de l'alphabet) jusqu’à ce que les conditions soient a 100% vérifiées et a chaque fois en cas d'erreur je demande a l'utilisateur d'introduire un nouveau mot que je dois de nouveau contrôler . Mais moi je procède comme suit: je vérifie d'abord le nombre de caractères puis si c'est des lettres de l'alphabet, mais en suivant cet ordre si il y'a une erreur dans le nombre de caractères un message d'erreur sera affiché si l'erreur est rectifiée et que l'utilisateur introduit par la suite un autre mot contenant des caractères spéciaux un autre message d'erreur apparaîtra mais si pour corriger l'erreur il introduit un autre mot contenant que des lettre de l'alphabet MAIS de taille différente de n la aucun message n’apparaîtra et le mot sera lu le plus normalement possible.
merci encore de m'aider !
merci encore de m'aider !
j'ai aussi pensé a la récursivité que je ne maîtrise pas du tout d'ailleurs ça ne marche pas
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void test_alpha(char marie[],int taille)
{
int i=0;
while(isalpha(marie[i])!=0)
{
i++;
}
if (i<taille)
{
printf("erreur , faites entrer un autre mot \n");
scanf("%s",&marie);
test_alpha(marie,taille);
}
}
int main()
{ char marie[4];
printf("faites entrer votre mot \n");
scanf("%s",&marie);
test_alpha(marie,4);
return 0;
}
je pourrai utiliser la récursivité et obliger l'utilisateur a introduire n caractères ni plus ni moins mais comment?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void test_alpha(char marie[],int taille)
{
int i=0;
while(isalpha(marie[i])!=0)
{
i++;
}
if (i<taille)
{
printf("erreur , faites entrer un autre mot \n");
scanf("%s",&marie);
test_alpha(marie,taille);
}
}
int main()
{ char marie[4];
printf("faites entrer votre mot \n");
scanf("%s",&marie);
test_alpha(marie,4);
return 0;
}
je pourrai utiliser la récursivité et obliger l'utilisateur a introduire n caractères ni plus ni moins mais comment?
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié le 15 mars 2019 à 13:09
Modifié le 15 mars 2019 à 13:09
tu peux faire ton algorithme simplement comme ceci :
1- demander une saisie faisant exactement n caractères et ne comprenant que des caractères alphabétiques
2- vérifier si la saisie fait exactement n caractères, sinon afficher une erreur "votre saisie ne remplit pas les critères" et repartir sur 1
3- vérifier si la saisie ne comporte que des caractères alphabétiques, sinon afficher une erreur "votre saisie ne remplit pas les critères" et repartir sur 1
Ton code pour vérifier que les caractères sont alphabétiques n'a pas besoin de récursivité. Il suffit d'une boucle.
Ton code ne limite pas la saisie à n caractères au plus. Je t'ai indiqué comment faire en récupérant la saisie avec fgets (à utiliser dans ce cas avec stdin) ... là tu utilises scanf, et d'une façon qui ne te permet pas de limiter la saisie et aboutira à un débordement du tampon mémoire si l'utilisateur est indiscipliné et tape plus de caractères qu'on ne lui demande.
Vois ce post récent sur le forum sur fgets et stdin : https://forums.commentcamarche.net/forum/affich-35909535-comprendre-l-usage-de-stdin
Dal
1- demander une saisie faisant exactement n caractères et ne comprenant que des caractères alphabétiques
2- vérifier si la saisie fait exactement n caractères, sinon afficher une erreur "votre saisie ne remplit pas les critères" et repartir sur 1
3- vérifier si la saisie ne comporte que des caractères alphabétiques, sinon afficher une erreur "votre saisie ne remplit pas les critères" et repartir sur 1
Ton code pour vérifier que les caractères sont alphabétiques n'a pas besoin de récursivité. Il suffit d'une boucle.
Ton code ne limite pas la saisie à n caractères au plus. Je t'ai indiqué comment faire en récupérant la saisie avec fgets (à utiliser dans ce cas avec stdin) ... là tu utilises scanf, et d'une façon qui ne te permet pas de limiter la saisie et aboutira à un débordement du tampon mémoire si l'utilisateur est indiscipliné et tape plus de caractères qu'on ne lui demande.
Vois ce post récent sur le forum sur fgets et stdin : https://forums.commentcamarche.net/forum/affich-35909535-comprendre-l-usage-de-stdin
Dal