ok, il y a deux choses differente ici. std::cout et std::cin sont des "flux" de "la sortie standard" et de "l'entree standard". Pour tout probleme de relevance pratique dans ce que tu fais, c'est le clavier de ton terminal et l'affichage de ton terminal. Mais dans certain cas, ca peut etre autre chose. Par exemple, quand tu programme un script CGI, l'entree standard est la requete HTTP du client et la sortie standard est la page HTML renvoye au client. Donc std::cin et std::cout ne sont pas lie a un terminal dans ce cas. Il y a beaucoup d'autre cas comme ca. Cependant dans une demarche d'apprentissage, c'est mieux de pense a eux comme etant l'ecran et le clavier.
Apres, il y a d'autres "objets" qui s'utilisent comme std::cout et std::cin et qui ne servent pas a lire/ecrire sur l'entree et la sortie standard, mais sur d'autre chose, comme un fichier, une interface reseau, un segment de memoire... Tu verra ca certainement plus tard.