Zdravím Vás,
nejsem znalý C++ code, nicméně pokud se podívám na část code týkající se regulárního výrazu, tak minimálně :
a) definice character class pro match pouze číslic je [0-9], ne [ 0 - 9 ]
b) také jsem nenašel rozumný quantifier za character class, který by měl být, minimálně,
znak '?' nebo '*' nebo '+'
Čili to, co hledáte, by mohlo vypadat takhle : [0-9]+, samozřejmě je nutno zasadit to do kontextu C++.
Btw, Vy máte navíc použit znak '^' na začátku reg. výrazu, což jinak znamená, že aby nastal match (omlouvám se za příšernou češtinu) musí daná proměnná <<cislo>> začínat číslicemi, ne např. znakem 'mezera', což může být (to je na diskusi) na vstup dat z klávesnice zbytečné omezení...
Moje osobní skušenost je nebýt na uživatele zbytečně přísný a umožnit mu při vstupu dat vytvářet chyby typu "zavadil jsem o klávesnici nosem... ( a stisknul tím nechtěně klávesu TAB, či SPACE, či CTRL+ALT+DEL..

).." , než mu ve smyčce "nadávat" že "Nastala chyba při zadávání dat", aniž by věděl, jaké že to chyby se dopustil...
