J'essaie d'obtenir une ligne en entrée de la ligne de commande. Mon problème est que je n'obtiens pas toute la ligne, mais il est atomisé par l'espace.C++ personnalisation de chaîne de caractères
Donc, si je suis entré dans quelque chose comme «J'aime Math beaucoup » au lieu d'obtenir
"you enterend: I like Math a lot"
je suis le follwoing:
EDITING MODE: Enter a command
i like Math a lot
you entered i
EDITING MODE: Enter a command
you entered like
EDITING MODE: Enter a command
you entered Math
EDITING MODE: Enter a command
you entered a
EDITING MODE: Enter a command
you entered lot
void enterEditingMode(){
editingMode = TRUE;
static string CMD = "\nEDITING MODE: Enter a command\n";
string input;
while(editingMode == TRUE){
cout << CMD;
cin >> input;
//we assume input is always correct
// here we need to parse the instruction
cout << "you entered " << input <<endl;
Et n'oubliez pas la version de cin.getline (char *, int) si vous voulez saisir une chaîne c. –
Il n'a pas de conversion explicite en void *. Il a une conversion explicite en un type non spécifié qui est utilisable dans un contexte booléen. Il se peut que cela soit nul * dans votre implémentation, mais cela peut ne pas s'appliquer à tous. Et c'est beaucoup plus facile d'expliquer aux débutants que le résultat est convertible en quelque chose qui agit comme un booléen. –
En fait, 'opérateur void *' est requis par la norme. Cela fait partie de l'interface de la classe de base 'basic_ios'. –