Na czym dokładnie polega działanie funkcji cin.sync()?

Na czym dokładnie polega działanie funkcji cin.sync()?
CO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0

Hejka, wiem że był już taki temat na forum i szukałem też informacji w google na ten temat ale nadal tego nie ogarniam :( Mógłby ktoś mi wyjaśnić może też podać jakiś przykład na czym dokładnie polega działanie funkcji cin.sync() ?

Rozumiem że cin.clear() czyści mi bufor, okej fajnie. W przykładach które przeanalizowałem w internecie często jest wywoływana z nią właśnie funkcja cin.sync() jakby sama funkcja cin.clear() nie mogła do tego wystrarczyć, do pełnej kontroli nad wprowadzaniem danych przy użyciu obiektu cin.
Pozdrawiam

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1

Rozumiem że cin.clear() czyści mi bufor

Not even close, .clear() czyści flagi błędu strumienia, ale nie usuwa z niego żadnych danych.

06
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2440
0

W skrócie: sync może opróżnić bufor wejściowy z nieprzeczytanych znaków, ale nie musi. Zachowanie tej metody zależy od implementacji i rodzaju buffora (std::streambuf).

carlosmay
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Pabianice
0

...i dlatego najlepiej posłużyć się metodą std::cin.ignore().

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.