Articles

GeeksforGeeks

Považte problém, kdy potřebujeme přijmout neznámý počet celočíselných vstupů.

Typickým řešením je spuštění smyčky a zastavení, když uživatel zadá určitou hodnotu. Jak to udělat, když nesmíme použít if-else, switch-case a podmíněný příkaz.

Námětem je využít toho, že ‚cin >> input‘ false, pokud je zadána nečíselná hodnota. Všimněte si, že tento výše uvedený přístup platí pouze v případě, že datový typ vstupní hodnoty je int (celé číslo).

Důležitý bod : cin je objekt, pokud je std::istream. V C++11 a novějších verzích má std::istream konverzní funkci explicit bool() const;, což znamená, že existuje platná konverze ze std::istream na bool, ale pouze tam, kde je to explicitně požadováno. Příkaz if nebo while se počítá jako explicitní požadavek na konverzi na bool.
Před C++ 11 std::istream měl konverzi na operátor void*() const;

#include <iostream>
using namespace std;
int main()
{
int input;
int count = 0;
cout << "To stop enter any character";
cout << "\nEnter Your Input::";
while (cin >> input)
count++;
cout << "\nTotal number of inputs entered: "
<< count;
return 0;
}



Výstup:

To stop enter any characterEnter Your Input 1 2 3 sTotal number of inputs entered: 3

Na tomto článku se podílel Aditya Rakhecha. Pokud se vám GeeksforGeeks líbí a chtěli byste přispět, můžete také napsat článek pomocí stránky contribute.geeksforgeeks.org nebo poslat svůj článek na adresu [email protected]. Uvidíte, jak se váš článek objeví na hlavní stránce GeeksforGeeks, a pomůžete tak ostatním geekům.

.