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.
.