Если вы прокрутите немного вниз на https://www.tutorialspoint.com/cplusplus/cpp_files_streams.htm,, вы увидите пример запуска программы.
$./a.out
Writing to the file
Enter your name: Zara
Enter your age: 9
Reading from the file
Zara
9
Если вы сами скомпилируете и запустите программу, внутри afile.dat
файл, который создается, вы увидите следующее:
Zara
9
Исходя из этого, мы можем выяснить, что только данные, вставленные в поток выходного файла outfile
, записываются в файл, и чтосообщения, отправленные на cout
, не сохраняются в файле (они отображаются только для пользователя).
cout
и cin
являются специальными - они представляют собой потоки для стандартного вывода и стандартного ввода, которыепо умолчанию прикрепляются к окну терминала пользователя.Они дают вам способ записать информацию в окно терминала, которую будет видеть пользователь (cout
), и способ прочитать, что пользователь вводит в (cin
).Существует также cerr
, который используется для вывода ошибок пользователю.
Вы можете думать о потоках, вроде кранов и стоков.Данные считываются из входного потока (вода поступает из крана), а данные записываются в выходной поток (вода уходит в канализацию);Ваш код может манипулировать входными данными и изменять их или перемещать их, что-то вроде шланга или трубы, контролирующих, куда течет вода.Стандартный ввод / вывод / ошибка являются одним из примеров представления взаимодействия с терминалом пользователя как «потоки», но вы можете использовать аналогичный метод ввода и вывода данных как «потоки» данных с файлами.
ИзВ примере вывода вы можете видеть, что пользователь набрал Zara
и 9
, которые были прочитаны с использованием потока cin
, когда программа предложила пользователю ввести имя и возраст, записав в поток cout
.Затем программа взяла данные, считанные из стандартного ввода, и использовала поток выходного файла (ofstream
) для записи данных в файл, а затем программа считывает данные из файла с использованием потока входного файла (ifstream
) и показывает его пользователю, записав его в стандартный формат.