[C]Des espaces dans les chaines de caractères
Résolu
Yuku
Messages postés
199
Date d'inscription
Statut
Membre
Dernière intervention
-
Yuku Messages postés 199 Date d'inscription Statut Membre Dernière intervention -
Yuku Messages postés 199 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- [C]Des espaces dans les chaines de caractères
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Espaces insécables - Guide
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Espace de stockage gmail plein - Guide
6 réponses
hum...je vois l'erreur tu as oublier de vider le buffer apres tes scanf de choix...
essaye ça
essaye ça
#include <string.h> #include <stdio.h> #include <stdlib.h> //using namespace std; int main(int argc, char *argv[]) { char util[10], adversaire[10], OHV[35]; //Initialisation des chaines de caractères. char choix; //Initialisation de la variable choix (%c car O[oui] ou N[non]). do{ printf("\nComment vous appelez-vous?\t"); fgets(util,10,stdin); //L'utilisateur informe de son nom. fflush(stdin); //Nettoyage du buffer pour éviter des problèmes avec scanf. printf("\nVous vous appelez donc %s ? (O=Oui, N=Non)\t", util); scanf("%c", &choix); fflush(stdin); if(choix=='O' && choix!='N') { printf("\nD'accord, votre nom est donc "); } }while(choix=='N'); //Boucle qui se répète tant que le choix n'est pas correct. printf("%s !\n\n", util); do{ printf("\nLe nom de votre rival?\t\t"); fgets(adversaire,10,stdin); fflush(stdin); printf("\nVotre rival est donc %s ? (O=Oui, N=Non)\t", adversaire); scanf("%c", &choix); fflush(stdin); if(choix=='O' && choix!='N') { printf("\nAh mais oui, c'est "); } }while(choix=='N'); printf("%s votre rival!\n\n", adversaire); do{ printf("\nEt ou habitez-vous?\t\t"); scanf("%s", OHV); fflush(stdin); printf("\nVous habitez donc a %s ? (O=Oui, N=Non) ?\t", OHV); scanf("%c", &choix); if(choix=='O' && choix!='N') { printf("\nVous etes donc "); } }while(choix=='N'); printf("%s, de %s !\n\n\n", util, OHV); system("PAUSE"); return 0; }
le scanf arrete de stocké des qu'il rencontre un espace la solution c'est d'utiliser fgets qui lui stocke les espace
fgets(util,10,stdin);pour l'autre question au lieu d'utiliser system("PAUSE") tu peux utiliser getchar()
Euh oui mais si je mets donc fgets(util, 10, stdin); à la place de scanf("%s", util);, le programme ne s'exécute pas correctement du tout...
Comment je dois initialiser mes variables pour le coup?
Comment je dois initialiser mes variables pour le coup?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question