[C] comment effectuer bonne saisie ?
Résolu
jerémiethe7
Messages postés
153
Statut
Membre
-
jerémiethe7 Messages postés 153 Statut Membre -
jerémiethe7 Messages postés 153 Statut Membre -
Bonjour,
j'ai essayé toute l'apres-midi de faire une bonne saisie. Je demande un prenom à l'utilisateur et il me l'entre.
J'ai une taille fixe de 30 caractères dans ma chaine + 1 pour le '\0'.
j'ai essayé avec un scanf mais ça ne marche pas car si on reste appuyé comme un déjantésur le clavier ça affiche un message d'erreur.
Du coup j'ai eu l'idée d'examiner caractère par caractère. voici ce que j'ai fait :
do
{
printf("Entrer leprenom de la personne ( < a 30 caracteres ):\n");
while (lettre!=13&&strlen(tampon)<=taille_recue+1)
{ lettre=getch();
tampon[i]=lettre;
if(lettre!=8 || lettre!=-32) // caractère ascii de backspace et touche de gauche
i++;
else
i--;
printf("%c",lettre);
}
tampon[i]='\0';
fflush(stdin);
}while(strlen(tampon)>=(taille_recue+1));
voilà j'espère que quelq'un pourra m'aider, ce que je recherche, cest bien comment ne pas faire "beugger" une demande.
Merci d'avance!!
j'ai essayé toute l'apres-midi de faire une bonne saisie. Je demande un prenom à l'utilisateur et il me l'entre.
J'ai une taille fixe de 30 caractères dans ma chaine + 1 pour le '\0'.
j'ai essayé avec un scanf mais ça ne marche pas car si on reste appuyé comme un déjantésur le clavier ça affiche un message d'erreur.
Du coup j'ai eu l'idée d'examiner caractère par caractère. voici ce que j'ai fait :
do
{
printf("Entrer leprenom de la personne ( < a 30 caracteres ):\n");
while (lettre!=13&&strlen(tampon)<=taille_recue+1)
{ lettre=getch();
tampon[i]=lettre;
if(lettre!=8 || lettre!=-32) // caractère ascii de backspace et touche de gauche
i++;
else
i--;
printf("%c",lettre);
}
tampon[i]='\0';
fflush(stdin);
}while(strlen(tampon)>=(taille_recue+1));
voilà j'espère que quelq'un pourra m'aider, ce que je recherche, cest bien comment ne pas faire "beugger" une demande.
Merci d'avance!!
A voir également:
- [C] comment effectuer bonne saisie ?
- Saisie gestuelle iphone - Guide
- Vous devez disposer d'une autorisation pour effectuer cette action - Guide
- Comment saisir une adresse url - Guide
- Saisie vocale whatsapp - Accueil - Messagerie instantanée
- Saisie vocale sms - Guide
3 réponses
char toto[31];
sscanf( "%30s" , toto );
==> Tu ne pourras pas saisir plus de 30 caractères !
tu peux même faire :
sscanf( "%*s" , sizeof(toto)-1 , toto );
cela t'éviteras de modifier ton code le jour on tu redimesionneras toto.
sscanf( "%30s" , toto );
==> Tu ne pourras pas saisir plus de 30 caractères !
tu peux même faire :
sscanf( "%*s" , sizeof(toto)-1 , toto );
cela t'éviteras de modifier ton code le jour on tu redimesionneras toto.