Krnąbrny użytkownik programu - zabezpieczenie przed wpisaniem w cina czegos innego niz z deklaracji

0

Jak w temacie.
Czy można ustrzec się przed czymś takim, że użytkownik wpisze w CINA coś innego niż zaplanowałem w deklaracji (chodzi tu o wpisanie zamiast INT czegoś np. z FLOAT). Jak zrobić by program mógł w zmiennej zapisać w zależności od sytuacji różny od zaplanowanego typ danych.

Albo drugi podobny problem. Mam takie coś:

// Dziwny program cz.1

#include <iostream>
#include <conio.h>

int PokazTekst(std::string Okreslenie1, std::string KogoLubisz)
{
    std::cout << "Jestes " << Okreslenie1 << " i lubisz " << KogoLubisz << ". Czyz nie mam racji? :)" << std::endl;
}

int main()
{
    std::cout << "Wcisnij '0' (zero) lub wpisz 'tak' przy pytaniu 'Chcesz wyjsc' by zakonczyc program." << std::endl;
    
    std::string DanaZmienna1;
    std::string DanaZmienna12;
    int ChceWyjsc;
    
    do
    {
          std::cout << "Kim jestes? ";
          std::cin >> DanaZmienna1;
          
          std::cout << "Kogo/Co lubisz? ";
          std::cin >> DanaZmienna12;
      
          std::cout << "Chcesz wyjsc? (jesli chcesz pisac dalej wcisnij liczbe rozna od zera) ";
          std::cin >> ChceWyjsc;
    } while (ChceWyjsc != 0);
    
    PokazTekst(DanaZmienna1, DanaZmienna12);
    getch();
}

jak zrobić by w WHILE dać zamiennik "LUB" (+ by przygotował się albo na typ INT, albo na STD::STRING)...
Jeśli mnie zrozumieliście, wielkie dzięki :)

0

Możesz wczytywać zawsze stringi, a potem próbować parsować na różne typy. Tylko w zasadzie można by rozróżnić 2 logiczne przypadki - liczba i "nieliczba"...

0

Ludzkie lenistwo nie zna granic...
Zabezpieczenie przed wpisywaniem liter

1 użytkowników online, w tym zalogowanych: 0, gości: 1