Yes and no. Someone else can elaborate, but for all intensive purposes, whatever characters are typed into the console are passed into the variable. There is some magic that happens behind the scenes that if you don't know exactly what's going on can cause you to ask questions.
One specific incident is inputting strings. A string can contain a space, but typing a space in cin will move the input to the next variable. There is ways around this like getline().
There is also other things to understand. Cin is standard, meaning that it accepts any standard characters, whereas a keyboard has many nonstandard keys on it including F buttons, arrow keys, alt, etc.
you are essentially calling the input operator >> (which is a function) with the cin object, which ONLY takes it's input from the keyboard?
You got it half right, until "ONLY". It takes input from Standard Input, which is usually set by the Operating System as the keyboard, but can be changed by the user. (LowestOne's post shows how to do this.)