To read from a file you must use a variable of type ifstream. To write to a file you must use a variable of type ofstream. In both cases, you must open the file before you can read or write.For example, here's how to open the file named "input.dat" for reading: #include <fstream>ifstream inFile; inFile.open("input.dat"); if (inFile.fail()) { cerr << "unable to open file input.dat for reading" << endl; exit(1); }Note that to use files you must #include <fstream> (including iostream is not good enough). Also note that this code writes its error message to cerr; that is the standard error, and should generally be used for error messages instead of the standard output.Once inFile has successfully been opened for reading, you can use the usual input operator to read values: int n, sum = 0; while (inFile >> n) { sum += n; }In this example, each time the while loop condition is evaluated, the next integer in the input file is read into variable x. The while loop condition will evaluate to false when all of the values in the input file have been read.If you prefer to read one character at a time (including whitespace characters), you can use the get operation: char ch; while (inFile.get(c)) { ... }In this example, each time the while loop condition is evaluated, the next character in the input file is read into variable ch. As in the previous example, the condition will evaluate to false when there are no more characters in the input.I/O ParametersIt is often useful to write a function that takes an input stream or an output stream as a parameter, and reads from or writes to the given stream (without worrying about whether it is using the standard input/output or a particular file). To do this, you should use parameters of type istream (for input), and ostream (for output). For example: void f( istream & input, ostream & output ) { int n; output << "enter a number: "; input >> n; }Note:1. "input" and "output" are the names used in the example for the two parameters, but there is nothing special about those names; as usual, it is up to the programmer to choose parameter names. 2. The ampersands in front of the parameter names mean that the two parameters are passed by reference. The difference between value parameters and reference parameters will be discussed in another set of notes. For now, just remember that input and output streams must always be passed by reference (or you will get a not-very-clear compile-time error). 3. A call to function f can pass either the standard input or a file (an ifstream) as the first parameter, and can pass either the standard output, the standard error, or a file (an ofstream) as the second parameter.