Раньше для ввода и вывода информации мы использовали клавиатуру. Программа a + b при этом выглядела следующим образом:
#include <iostream>
#include <conio.h>using namespace std;
int a, b, c;
int main() {
cin >> a >> b;
c = a + b;
cout << c;
getch();
return 0;
}
С использованием файлов она будет выглядеть следующим образом:
#include <iostream>
using namespace std;
int a, b, c;
int main() {
freopen(«a+b.in», «r», stdin);
freopen(«a+b.out», «w», stdout);
cin >> a >> b;
c = a + b;
cout << c;
return 0;
}
Что же поменялось?
Во-первых мы убрали функцию getch(), которая была нужна для задержки экрана.
Во-вторых библиотеку conio.h, которая была нужна для вызова getch().
Зато мы добавили в код две строки:
freopen(«a+b.in», «r», stdin);
freopen(«a+b.out», «w», stdout);
В строке
freopen(«a+b.in», «r», stdin);
мы подключаем файл ввода. Из него мы будем брать значения наших переменных. В freopen передаются три значения.
Первое это имя файла откуда мы будем брать информацию.
«r» и stdin указывают на то, что это файл ввода.
В строке
freopen(«a+b.out», «w», stdout);
мы подключаем файл вывода. В него мы будем записывать полученный результат.
Если файл вывода отсутствует, то компьютер сам его создаст. Здесь первое значение это имя файла куда мы будем записывать информацию. «w» и stdout указывают на то, что это файл вывода.
Файлы «a+b.in» и «a+b.out» будут находиться в той же директории, что и исходник программы.
Вот пример файла ввода «a+b.in» для программы a + b:
1 2
Тогда мы получим файл вывода «a+b.out»:
3