Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [c++] a cosa serve l'istruzione cin.sync()?

    premetto che sono un novellino e, quindi qualcuno può spiegarmi a parole povere a cosa serve questa istruzione e la sua sintassi?
    tutto si può fare, bisogna solo volerlo
    http://italybrain.altervista.org/

  2. #2
    Come al solito con gli stream C++ la questione non è semplicissima.
    cin.sync() chiama cin.rdbuf()->pubsync(), che a sua volta chiama cin.rdbuf()->sync(); questa in sostanza dovrebbe scartare tutti i caratteri rimasti nel buffer di input.
    Il problema è che non è ben definita dallo standard la "politica di gestione" del buffer di input di cin, per cui il comportamento vero e proprio varia considerevolmente da un'implementazione all'altra (o addirittura nella medesima implementazione a seconda dell'aver impostato o meno la sincronizzazione con gli stream C).
    Ergo, a priori non serve a molto, un po' come fflush(stdin) in C; nota che invece sync applicato su stream di output ha comportamento ben definito.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    grazie molte!
    tutto si può fare, bisogna solo volerlo
    http://italybrain.altervista.org/

  4. #4
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.