"A stream is an abstraction that represents a device on which input and ouput operations are performed. A stream can basically be represented as a source or destination of characters of indefinite length."
In this part integrer means that the user performs input in fortm of integer( n!) and main initiates the declaration of a function.int main (int argc, char** argv)
Char is a parameter, that determines the type of elements that are going to be manipulated, in this case argc which is integer.
As you pointed out what if we do not want to prompt a user for information but initialize the istringstream with the data string (eg. user enters a random number and program calculates it`s factorial). In our case you want to tell the code to perform <iostream>
objects. Narrow-oriented objects include cin, cout, cerr and clog. What do they do? (cout calculates).
In summary <iostream> declares the objects used to communicate through the standard input and output (including cin and cout) and whose properties I don`t exactly understand.