cin is a blocked input. Whatever comes from the keyboard is stored in a buffer. When you press enter the system passes the buffer to the application code (std::cin code). Operator >> will decide how much to read from that buffer - one char, string, int, float etc. Depends on the type of the operand.
cin is an object of class istream that represents the standard input stream. It corresponds to the cstdio stream stdin. The operator >> overload for streams return a reference to the same stream. The stream itself can be evaluated in a boolean condition to true or false through a conversion operator. cin provides formatted stream extraction. The operation cin >> x; where "x" is an int will ...
if (cin >> x) - Why can you use that condition? - Stack Overflow
I am currently reading in with std::cin >> for the strings I expect to be single words and getline(std::cin, string) for the strings with spaces. I am not getting the right output, though.
What are the rules of the std::cin object in C++? - Stack Overflow
How to cin a Space symbol from standard input? If you write space, program ignores! : ( Is there any combination of symbols (e.g. '\s' or something like this) that means "Space" that I can use from standard input for my code?
3 There is no close equivalent to cin in C. C++ is an object oriented language and cin uses many of its features (object-orientation, templates, operator overloading) which are not available on C. However, you can read things in C using the C standard library, you can look at the relevant part here (cstdio reference).