Boucle cin.get()
Résolu
Bonjour,
Mon programme a pour but de récupérer une suite de valeurs numériques avec une boucle
Mais le truc c'est quand je mets dans mon programme par exemple "12", il ne ressort rien, vu qu'il sort de la boucle quand il atteint '\n'.
Comment puis-je faire qu'il prenne le "12" et que je puisse réutiliser le "12" dans une variable dans la boucle ?
Désolé je suis très mauvais pour m'exprimer...
Merci d'avance de votre aide
Mon programme a pour but de récupérer une suite de valeurs numériques avec une boucle
cin.get()que l'utilisateur donne, ensuite de les stocker, et par la suite faire une multitude d'opérations avec.
Mais le truc c'est quand je mets dans mon programme par exemple "12", il ne ressort rien, vu qu'il sort de la boucle quand il atteint '\n'.
Comment puis-je faire qu'il prenne le "12" et que je puisse réutiliser le "12" dans une variable dans la boucle ?
Désolé je suis très mauvais pour m'exprimer...
Merci d'avance de votre aide
#include <cstdlib> #include <iostream> #include <iomanip> #include <limits> #include <cctype> using namespace std; enum class Etats {ETAT_INITIAL, LECTURE_PREMIER_NOMBRE, FIN_LECTURE, LECTURE_NOMBRE_SUIVANT}; int main() { char serieNumerique; int etapes(0),conversionChar,premierNombreCalcul(0),secondNombreCalcul(0),compteur(1); cout<<" Entrez une chaine chaine numerique (>=0) : "; cin.get(serieNumerique); while(serieNumerique != '\n'){ switch((Etats)(etapes)){ case Etats::ETAT_INITIAL : { if(not isspace(serieNumerique)){ etapes = 1;} else {break;} } case Etats::LECTURE_PREMIER_NOMBRE : { if(iscntrl(serieNumerique)){ cout<<premierNombreCalcul<<endl;} if(not isspace(serieNumerique)){ premierNombreCalcul *= 10; conversionChar = (int)serieNumerique - 48; premierNombreCalcul += conversionChar; break; } else { cout<<premierNombreCalcul<<endl; etapes = 2; } } case Etats::FIN_LECTURE : { } case Etats::LECTURE_NOMBRE_SUIVANT : { } default : break; } cin.get(serieNumerique); } system("PAUSE"); return EXIT_SUCCESS; }
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
1 réponse
Bonjour,
En cherchant un peu sur google tu tombes par exemple sur :
https://stackoverflow.com/questions/2287121/how-to-read-groups-of-integers-from-a-file-line-by-line-in-c
... sachant que lire un fichier (std::ifstream) ou l'entrée standard (std::cin, qui est un std::istream) ne change rien à l'approche.
Bonne chance
En cherchant un peu sur google tu tombes par exemple sur :
https://stackoverflow.com/questions/2287121/how-to-read-groups-of-integers-from-a-file-line-by-line-in-c
... sachant que lire un fichier (std::ifstream) ou l'entrée standard (std::cin, qui est un std::istream) ne change rien à l'approche.
Bonne chance