Portál AbcLinuxu, 4. prosince 2025 10:20
while (cin)
{
c = cin.get();
if (c != EOF)
zpracuj znak;
}
Řešení dotazu:
To není záležitost C++, ale toho, jak funguje kombinace kláves Ctrl-D. Při obvyklém nastavení tato kombinace způsobí flushnutí bufferu, pokud v něm něco je. Pokud je prázdný, funguje jako EOF. Buffer je prázdný buď na začátku řádku (při defaultním nastavení se bufferuje po řádcích) nebo bezprostředně po flushnutí (tj. stisknete-li Ctrl-D dvakrát po sobě).
Ve výsledku to znamená, že jste-li na začátku řádku, stačí Ctrl-D stisknout jednou, pokud ne, je potřeba ho stisknout dvakrát (chcete-li ukončit vstup).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.