Portál AbcLinuxu, 12. května 2025 10:37
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.