Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Przerywanie strumienia wejścia, po braku otrzymania danych...

Ostatnio zmodyfikowano 2017-02-23 10:20
Autor Wiadomość
cichy3993
Temat założony przez niniejszego użytkownika
Przerywanie strumienia wejścia, po braku otrzymania danych...
» 2017-02-22 20:38:52
Jak w temacie, chcę aby "cin" był przerywany po niewprowadzeniu danych, tj.
Podawane są jakieś liczby:
1
5
6456
*tu nic nie jest wprowadzane, użytkownik klika enter*
//w tym momencie przerywane jest wprowadzanie danych, a program wykonuje jakieś operacje na tych wprowadzonych dotychczas
P-158140
jankowalski25
» 2017-02-22 21:26:22
1. Wczytaj tekst za pomocą
std::getline()
.
» Kurs C++Biblioteka <string> lekcja

Wczytywanie wiersza znaków

2. Sprawdź, czy tekst jest pusty.
3. Utwórz obiekt typu
std::istringstream
 przekazując do konstruktora wczytany tekst.
4. Użyj tego obiektu tak, jak
std::cin
 do wczytania liczby.
P-158141
pekfos
» 2017-02-23 10:20:55
» Kurs C++ » Poziom 4Wczytywanie zawartości pliku, a kontrola błędów lekcja
Funkcja czyNapotkanoZnakNowegoWiersza(). To jest na przykładzie strumieni plikowych, ale to działa identycznie dla std::cin. Nie ma tu niczego specyficznego dla std::ifstream, czy plików, więc usuń f z nazwy i będziesz mógł przekazać do funkcji std::cin. Pamiętaj, że szukasz dwóch przejść do nowej linii pod rząd, z pominięciem innych białych znaków. Jedno przechodzi do nowej linii, drugie kończy pustą linię, którą chcesz oznaczyć koniec danych.

*tu nic nie jest wprowadzane, użytkownik klika enter*
Miało być przerywanie po braku otrzymania danych, a ty przekazujesz enter ;) Strumień działa na znakach, nie liczbach, więc to jest przekazywanie danych. Wersja bez przekazywania danych, to ręczne oznaczenie końca danych za pomocą Ctrl+Z (w konsoli, pod Windowsem). Wtedy odczyt liczby za końcem spowoduje błąd i możesz tego użyć do przerwania pętli. Gdyby dane w std::cin brały się nie z konsoli, a z pliku, koniec zostałby automatycznie oznaczony wraz z wyczerpaniem danych z pliku. Jeśli projektujesz narzędzie do wykorzystywania w ten sposób, to może być właściwsza droga.
P-158154
« 1 »
  Strona 1 z 1