By default, most systems get their standard input from the keyboard, therefore cin is generally expected to get information from the user, although there are many cases where this can be redirected to some other source.
Because cin is an object of class istream, we can retrieve characters from cin either as formatted data using the extraction operator (>>) or as unformatted data using the read member function, among others (see istream).
cin is tied (see ios::tie) to the standard output stream cout, which means that cout's buffer is flushed (see ostream::flush) before each i/o operation performed on cin.
|istream||Input stream (class)|
|cout||Standard output stream (object)|