[langage C] Prédéfinir un début de saisie

djim -  
ekra Messages postés 1870 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je souhaite faire saisir à un utilisateur un mot, qui commencera obligatoirement par "bac" par exemple.

soit il ne saisie que le mot et quand je fait un printf j'affiche baclemot
soit quand l'utilisateur doit saisir le mot, dès le début il voit bac.

Comment faire cela ? La première solution est peu être plus simple ?
A voir également:

4 réponses

ekra Messages postés 1870 Date d'inscription   Statut Membre Dernière intervention   342
 
printf("bac");
scanf("%s" , suiteMot);

strcpy(mot,"bac");
strcpy(mot + strlen("bac") , suiteMot);


Et tu obtiens le mot complet dans mot non ? Bon attention, il faut tout bien allouer, tu peux utiliser des fgets() c'est mieux...
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
je croi qu'il vau mieux utiliser l'opérature de concaténation (strcat() je croi) plutot que strcpy()
j'ai du mal avec scanf, mais un 'scanf("bac%s",lemot)' ne fonctionnerai til pas ?
0
ekra Messages postés 1870 Date d'inscription   Statut Membre Dernière intervention   342
 
Tu as raison :)
0
djim
 
je viens de tester

scanf("bac%s",lemot);

cela ne fonctionne pas, je rentre dans une boucle infini
0
ekra Messages postés 1870 Date d'inscription   Statut Membre Dernière intervention   342
 
En tout cas chez moi ça marche bien, mais il faut penser à vider le buffer.

 
#include <stdio.h>
#include <string.h>

int main() {
  char chaine[20];
  int ret;
  char c;

  do {
    while( (c=getchar())!='\n' && c!=EOF ); 
    printf("Veuillez entrer un mot commencant par bac\n");
    ret = scanf("bac%s",chaine);
  } while (ret != 1);

  printf("Vous avez entre bac%s\n",chaine);

  return 0;
}
0