Fonction de saisie [Débutant]

nsr974 Messages postés 3 Date d'inscription vendredi 24 octobre 2003 Statut Membre Dernière intervention 16 janvier 2004 - 16 janv. 2004 à 08:19
Darkneon Messages postés 56 Date d'inscription vendredi 18 mai 2001 Statut Membre Dernière intervention 13 décembre 2005 - 16 janv. 2004 à 21:31
Bonjour à tous,

Voilà mon problème : Je dois réaliser une fonction de saisie qui serait capable de prendre soit une ou plusieurs variables, par exemple si on fait
" n 2 Jean 10"
"e"

Et ben ca doit lui associer les actions correspondantes,mais je vois pas comment faire avec les cin puisqu'il n'y a pas tjs le meme nombre de variables.
Si vous avez une idée,merci

Vive l'informatique! 8-)

3 réponses

Darkneon Messages postés 56 Date d'inscription vendredi 18 mai 2001 Statut Membre Dernière intervention 13 décembre 2005
16 janv. 2004 à 09:30
Salut,

Utilise cin.getline pour prendre tes variables. Fait quelque chose comme suit.

char buffer[100];

cin.getline(buffer, 100);

Cela va saisir une ligne de maximum 100 caracter incluant les espace.

Apres fait un "for loop" qui lit le buffer caracter par caracter et lorsqu'il arrive a une espace vide, ce qui precede est la valeur de la variable. Tu peux aussi implementer un compteur qui sauver le nombre de variable.

J'espere que ca t'aidera et que ta bien compris.

Party 'till you drop !!!
0
nsr974 Messages postés 3 Date d'inscription vendredi 24 octobre 2003 Statut Membre Dernière intervention 16 janvier 2004
16 janv. 2004 à 16:10
Salut !!

Tout d'abord merci d'avoir répondu. En effet je ne connaissais pas cin.getline.
Ms j'espere ne pas trop abuser,mais comment tu fait pour lire caractère par caractère et voir qu'il s'agit d'un espace ?
Et une question bête,l'espace n'est pas un caractère non ?
Merci

Vive l'informatique! 8-)
0
Darkneon Messages postés 56 Date d'inscription vendredi 18 mai 2001 Statut Membre Dernière intervention 13 décembre 2005
16 janv. 2004 à 21:31
Salut,

Je crois que oui, l'espace est un caractere, c'est quand on appui sur la touche espace. Il est reprsenter par le nombre 32 mais tu peux utiliser ' ' ce qui fait la meme chose.

Pour voir si il y a un espace, tu fait une boucle et dans la boucle tu regarde si le caractere present est egale a 32 ou ' '.

Ex.

for (int c = 0; c < 100; c++) {
if (buffer[c] == ' ') {
cout << "ALERTE!! Espace trouver";
}
}

Bon, fait attention, si la ligne enter est moins de 100 caractere, 50 par ex, pour les 50 qui reste l'ordinateur va affiche n'importe quoi.

Pour remedier a ca, utilise strlen() qui retourner le nomber de caracteres dans une chaine. Fait le changement necessaire dans la boucle.

Bonne chance dans ton apprentissage.

Party 'till you drop !!!
0
Rejoignez-nous