You learned that file streams mirror console streams. cin works like ifstream; cout like ofstream.
Always check if files opened successfully. Failed opens cause crashes or garbage.
The while (stream >> variable) pattern is the standard way to read until end-of-file. It handles any amount of data gracefully: zero items, one item, or millions.