Problém máte popsán v titulku.. mělo by to fungovat tak, že se zadá číslo a ověří se jestli je to číslo rovno 0 nebo ne, a pak případ kdy to není číslo. Ovšem ten případ např. s písmenem mi nejde ošetřit. Když jsem se snažil to vyřešit, vždy to "dodělalo" ten cyklus while, místo toho, aby se vypnul program.
#include <iostream>
using namespace std;
void over_cislo();
int main() {
cout << "Program: Overeni, jestli je cislo 0." << endl;
cout << "Autor: iCrow" << endl << endl;
cout << "Zadavej pouze cisla, jinak se program urazi a vypne se ;)" << endl;
cout << "Pokud chces program ukoncit, zmackni pismeno q a potvrd enterem, tak program urazis." << endl << endl;
int id;
id = 1;
while (id != 100) {
over_cislo();
id++;
}
}
void over_cislo() {
cout << "Napis cislo a potvrd enterem: ";
int cislo;
cin >> cislo;
if (cislo != 0) {
cout << cislo;
cout << " - cislo neni nula.";
} else if (cislo == 0) {
cout << cislo;
cout << " - cislo je nula.";
} else {
exit(0);
}
cout << endl << endl;
}
Pokud tam kdekoliv, do funkce over_cislo(), dám tenhle kód:
if (!(cin >> cislo)) {
exit(0);
}
Tak musím napsat číslo, enter, číslo, enter a až to druhé číslo se vyhodnotí v podmínkách, a znova.