[c++] reconnaitre du texte..

reconnaitre du texte.. [c++] - C++ - Programmation

Marsh Posté le 27-10-2001 à 14:04:23    

j'aimerai en c++ pouvoir separer des données textuelles et numérique contenue dans une variable
je m'explique
l'user entre dans var "i:a" (sans les guill). J'aimerai que le programme reconnaisse qu'il s'agit de l'action i (définie précédemment) et que cette action à comme valeur a (float)...
suis-je claire?
 
si qq'un à une idée, ce serait exclt
merci d'avance
 
titib

Reply

Marsh Posté le 27-10-2001 à 14:04:23   

Reply

Marsh Posté le 27-10-2001 à 14:19:15    

tu peux peut-être définir un séparateur entre les 2, par exemple, le ":".
Ensuite lorsque tu lit ta donnée, tu récupère les premiers caractères de la variable jusqu'à la position du ":".
puis tu récupère les caractères restants...

Reply

Marsh Posté le 27-10-2001 à 14:21:34    

et sans vouloir paraitre débile : cmt on fait ca?
pcq je suis un simpl petit debutant :-)

Reply

Marsh Posté le 27-10-2001 à 14:27:59    

Qu'est ce que tu veux faire exactement, parcequ'il y a peut être un autre moyen ?
comme demander d'abord l'action puis la valeur...
 
pour faire ce que je t'ai dit, je ne connais pas le nom des fonctions à utiliser, ça fait un moment que j'ai pas fait de C et 'm'en rappelle plus...
cela dit, elles existent certainement et elles sont faciles à trouver dans une doc...
cherche dans les manipulations de chaine de caractère... (ça apprend bien aussi de chercher :) )...

Reply

Marsh Posté le 27-10-2001 à 14:53:02    

atof pour transfomer un char* en double
 
enfin, t'apply pas ca direct

Reply

Marsh Posté le 27-10-2001 à 15:00:25    

ce que je cherche exactement à faire c'est
l'utilisateur entre choisit la fonction (i = input, h = help,...) et peut donner une valeur à cette fonction
donc pour dire que i=6
au lieu de faire
tappe : i[enter]
affiche : entrez i
tappe : 6[enter]
(-> 4 touches)
l'utilisateur ferait un truc genre "i:6[enter]"
(-> 4 touches)
 
meme nombre de touche mais bcp plus claire (je trouve) à l'écran
je me casse p-e le cul pour rien...
le but c en gros de minimiser le nbr de [enter]
 
merchi

Reply

Marsh Posté le 27-10-2001 à 15:07:53    

bon alors t bien sous dos (ligne de command): on c jamais :)  
t fonction ils auront + que une lettre?

Reply

Marsh Posté le 27-10-2001 à 15:12:56    

En gros c'est un interpréteur de commande.
Tu récupères la chaine entrée et tu l'analyses.
Et quand ça veut rien dire tu renvoies un message d'erreur.

Reply

Marsh Posté le 27-10-2001 à 15:31:15    

moué, c ca :-)
j'suis pas doué pour m'exprimé moi

Reply

Marsh Posté le 27-10-2001 à 15:34:10    

c bon, tu vois comment faire?

Reply

Marsh Posté le 27-10-2001 à 15:34:10   

Reply

Marsh Posté le 27-10-2001 à 15:41:04    

pour etre honnete... non!
dsl
t'a la solution, oh grand maître du c ?

Reply

Marsh Posté le 27-10-2001 à 15:48:36    

oui fidele sujet :D  
nan, jsuis pas un maitre et je pense que personne ne peux l'etre mais on va pas faire de filo :D  
 
un truc tout con (avec des command a 1 char)
 
void main()
{
 char* command = new char[255];    // 255 char au k ou...
 int i = 0;
 bool quit = false;
 
 
 while(!quit)
 {
  cin >> command;       // on recupere la command taper
 
  switch (command[0])      // premiere lettre?
  {
  case 'i':
   if (command[1] == ':';)
    i = atoi( command + 2 );  // on convertit la chaine apres le i: en integer
   else
    cout << "i=" << i << endl;  // ou si ya pas les : on affiche simplement
   break;
 
  case 'h':
   cout << "help" << endl;
   break;
 
  case 'q':
   quit=true;       // au revoir!
   break;
 
  default:        // ta taper koi??
   cout << "unknown command" << endl;
  };
 
  command[0] = '\0';
 }
 
 delete command;        // un coup de balait :D
}
 
rassurer vous je fait rarement de comment comme ca :)

Reply

Marsh Posté le 27-10-2001 à 15:54:05    

merci oh grand TheJackal :-)
c cool à toi
now je peux arreter de vous faire chier !  
t'a meme droit à un gros bisoux! SMACK  
bye bye
 
titib

Reply

Marsh Posté le 27-10-2001 à 15:55:59    

de rien mais arrete de jouer au mange boule :D

Reply

Marsh Posté le 27-10-2001 à 16:19:27    

ahaha, tu éspère, je reviens de plus belle :
dans i=atoi( cmd + 2 );
tu convertis en integer
tu fais cmt pour le convertir en float, double ou autre (en l'occurence c le float ki m'interesse)

Reply

Marsh Posté le 27-10-2001 à 16:20:46    

atof (en double)
c pareil pour float il me semble

Reply

Marsh Posté le 27-10-2001 à 16:36:50    

bingo :-)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed