SlideShare a Scribd company logo
Работа с файлами в С++
Для работы с файлами используются
специальные типы данных, называемые
потоками.
 Поток ifstream служит для работы с
файлами в режиме чтения.
 Поток ofstream служит для работы с
файлами в режиме записи.
 Поток fstream служит для работы с
файлами в режиме, как чтения, так и
записи.
В программах на C++ при работе с текстовыми файлами
необходимо подключать библиотеки iostream и
fstream.
Чтобы записывать данные в текстовый файл
необходимо:
Описать переменную типа ofstream
Отрыть файл с помощью функции open.
Вывести информацию в файл с помощью cout.
Обязательно закрыть файл.
Чтобы считывать данные из текстового файла необходимо:
1. Описать переменную типа ifstream
2. Отрыть файл с помощью функции open.
3. Считать информацию из файла с помощью cin, при
считывании каждой порции данных необходимо проверять, что
чтение возможно.
4. Закрыть файл.
Программа чтения из файла
1. #include <iostream>
2. #include <fstream>
3. using namespace std;
4. int main()
5. {
6. ifstream f("file.txt"); //создаем объект класса ifstream - f
7. //будем считывать 10 значений из файла
8. for (int i=0; i < 10; i++)
9. {
10. int v; // в эту переменную будем считывать значения
11. f >> v;
12. cout << v << endl;
13. f.close();
14. }
15. }
Программа записи в файл
1. #include <iostream>
2. #include <fstream>
3. using namespace std;
4. int main()
5. {
6. ofstream f("ofile.txt"); //создаем объект класса ofstream - f
7. //будем записывать 10 значений в файл
8. for (int i=0; i < 10; i++)
9. {
10. int v; // в эту переменную будем записывать значения с клавы
11. cin >> v;
12. f << v << endl;
13. f.close();
14. }
15. }
Если не знаем сколько в файле
значений#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("file.txt"); //создаем объект класса ifstream - f
//eof становится true, когда мы достигаем конца файла
//это надо, когда мы не знаем, сколько будет значений в файле
while (!f.eof()) //цикл выполняется, пока не конец файла
{
int v;
f >> v; // считывать из f
cout << v << endl;
}
f.close();
}
Если пустой перевод строки
ifstream f("file.txt"); //создаем объект класса ifstream - f
while (true)
{
int v;
f >> v; // считывать из f
if (!f.eof())
cout << v << endl; //тогда вывести на экран
else
break;
}
Задание
Напишите программу, которая
вычисляет среднее
арифметическое чисел,
находящихся в файле numbers.txt
(в нем должны быть 5 целых
чисел) и выводит рез-тат на экран
Задание
Напишите программу, которая
вычисляет среднее
арифметическое чисел,
введенных с клавиатуры и
выводит результат в файл
numbers.txt
Задание
самостоятельно создать
программу, которая считывает из
файла file1.txt и записывает
значения в file2.txt

More Related Content

What's hot

Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной сб...
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной   сб...Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной   сб...
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной сб...
Minsk Linux User Group
 
Web весна 2013 лекция 3
Web весна 2013 лекция 3Web весна 2013 лекция 3
Web весна 2013 лекция 3Technopark
 
Файлообменники
ФайлообменникиФайлообменники
Файлообменники
Inessa Cherednichenko
 
Веб-сервер
Веб-серверВеб-сервер
Веб-сервер
lectureswww lectureswww
 
Спецификация WSGI (PEP-333)
Спецификация WSGI (PEP-333)Спецификация WSGI (PEP-333)
Спецификация WSGI (PEP-333)
lectureswww lectureswww
 
Владислав Животнев - Основы DNS
Владислав Животнев - Основы DNSВладислав Животнев - Основы DNS
Владислав Животнев - Основы DNSYandex
 
Web осень 2012 лекция 3
Web осень 2012 лекция 3Web осень 2012 лекция 3
Web осень 2012 лекция 3Technopark
 
Алексей Иванов: немного о grunt.js #FrontTalks
Алексей Иванов: немного о grunt.js #FrontTalksАлексей Иванов: немного о grunt.js #FrontTalks
Алексей Иванов: немного о grunt.js #FrontTalksJetStyle
 
Анализ трафика
Анализ трафикаАнализ трафика
Анализ трафика
lectureswww lectureswww
 
Как мы сбежали от PostgreSQL или когда реляционная БД не справляется, Куманяе...
Как мы сбежали от PostgreSQL или когда реляционная БД не справляется, Куманяе...Как мы сбежали от PostgreSQL или когда реляционная БД не справляется, Куманяе...
Как мы сбежали от PostgreSQL или когда реляционная БД не справляется, Куманяе...
Coub
 
Снижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINXСнижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINXAndrii Podanenko
 
05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы
Roman Brovko
 
Массовые операции над письмами в Яндекс.Почте — Денис Кутуков
Массовые операции над письмами в Яндекс.Почте — Денис КутуковМассовые операции над письмами в Яндекс.Почте — Денис Кутуков
Массовые операции над письмами в Яндекс.Почте — Денис Кутуков
Yandex
 
Lecture14
Lecture14Lecture14
Lecture14Muuluu
 
массивы Php
массивы Phpмассивы Php
массивы Php
Vasya Petrov
 
Web весна 2012 лекция 3
Web весна 2012 лекция 3Web весна 2012 лекция 3
Web весна 2012 лекция 3Technopark
 
Единицы измерения информации
Единицы измерения информацииЕдиницы измерения информации
Единицы измерения информацииfunny32
 
Загрузка данных в SAP HR через LSMW
Загрузка данных в SAP HR через LSMW Загрузка данных в SAP HR через LSMW
Загрузка данных в SAP HR через LSMW
turnick
 

What's hot (20)

Ngs 2
Ngs 2Ngs 2
Ngs 2
 
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной сб...
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной   сб...Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной   сб...
Дмитрий Перлов openSUSE Build Server: tips & tricks кросс-дистрибутивной сб...
 
Файлы
ФайлыФайлы
Файлы
 
Web весна 2013 лекция 3
Web весна 2013 лекция 3Web весна 2013 лекция 3
Web весна 2013 лекция 3
 
Файлообменники
ФайлообменникиФайлообменники
Файлообменники
 
Веб-сервер
Веб-серверВеб-сервер
Веб-сервер
 
Спецификация WSGI (PEP-333)
Спецификация WSGI (PEP-333)Спецификация WSGI (PEP-333)
Спецификация WSGI (PEP-333)
 
Владислав Животнев - Основы DNS
Владислав Животнев - Основы DNSВладислав Животнев - Основы DNS
Владислав Животнев - Основы DNS
 
Web осень 2012 лекция 3
Web осень 2012 лекция 3Web осень 2012 лекция 3
Web осень 2012 лекция 3
 
Алексей Иванов: немного о grunt.js #FrontTalks
Алексей Иванов: немного о grunt.js #FrontTalksАлексей Иванов: немного о grunt.js #FrontTalks
Алексей Иванов: немного о grunt.js #FrontTalks
 
Анализ трафика
Анализ трафикаАнализ трафика
Анализ трафика
 
Как мы сбежали от PostgreSQL или когда реляционная БД не справляется, Куманяе...
Как мы сбежали от PostgreSQL или когда реляционная БД не справляется, Куманяе...Как мы сбежали от PostgreSQL или когда реляционная БД не справляется, Куманяе...
Как мы сбежали от PostgreSQL или когда реляционная БД не справляется, Куманяе...
 
Снижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINXСнижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINX
 
05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы
 
Массовые операции над письмами в Яндекс.Почте — Денис Кутуков
Массовые операции над письмами в Яндекс.Почте — Денис КутуковМассовые операции над письмами в Яндекс.Почте — Денис Кутуков
Массовые операции над письмами в Яндекс.Почте — Денис Кутуков
 
Lecture14
Lecture14Lecture14
Lecture14
 
массивы Php
массивы Phpмассивы Php
массивы Php
 
Web весна 2012 лекция 3
Web весна 2012 лекция 3Web весна 2012 лекция 3
Web весна 2012 лекция 3
 
Единицы измерения информации
Единицы измерения информацииЕдиницы измерения информации
Единицы измерения информации
 
Загрузка данных в SAP HR через LSMW
Загрузка данных в SAP HR через LSMW Загрузка данных в SAP HR через LSMW
Загрузка данных в SAP HR через LSMW
 

Similar to работа с файлами в с++

file handling in c
file handling in cfile handling in c
file handling in c
Maxim Shaptala
 
File input/output in VHDL
File input/output in VHDLFile input/output in VHDL
File input/output in VHDL
vitaliykulanov
 
О безопасном использовании PHP wrappers
О безопасном использовании PHP wrappersО безопасном использовании PHP wrappers
О безопасном использовании PHP wrappersPositive Hack Days
 
работа с потоками ввода вывода
работа с потоками ввода выводаработа с потоками ввода вывода
работа с потоками ввода выводаmetaform
 
09 rec file
09 rec file09 rec file
09 rec file
pogromskaya
 
файлы и файловая система
файлы и файловая системафайлы и файловая система
файлы и файловая система
sviridovane
 
НуП_Лекция 8. Работа с файлами на Ассемблере.ppt
НуП_Лекция 8. Работа с файлами на Ассемблере.pptНуП_Лекция 8. Работа с файлами на Ассемблере.ppt
НуП_Лекция 8. Работа с файлами на Ассемблере.ppt
dinarium2016
 
Files folders 6 kl
Files folders 6 klFiles folders 6 kl
Files folders 6 klOlga0204
 
Linux basics. Занятие 3.
Linux basics. Занятие 3. Linux basics. Занятие 3.
Linux basics. Занятие 3.
Vikentsi Lapa
 
лабораторная работа №7
лабораторная работа №7лабораторная работа №7
лабораторная работа №7Zhanna Kazakova
 
04 - Hadoop. HDFS Java API
04 - Hadoop. HDFS Java API04 - Hadoop. HDFS Java API
04 - Hadoop. HDFS Java API
Roman Brovko
 
Python: ввод и вывод
Python: ввод и выводPython: ввод и вывод
Python: ввод и вывод
Theoretical mechanics department
 
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-выводКурс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
7bits
 
лабораторная работа №8
лабораторная работа №8лабораторная работа №8
лабораторная работа №8Gulnaz Shakirova
 

Similar to работа с файлами в с++ (18)

file handling in c
file handling in cfile handling in c
file handling in c
 
File input/output in VHDL
File input/output in VHDLFile input/output in VHDL
File input/output in VHDL
 
Step 6
Step 6Step 6
Step 6
 
О безопасном использовании PHP wrappers
О безопасном использовании PHP wrappersО безопасном использовании PHP wrappers
О безопасном использовании PHP wrappers
 
работа с потоками ввода вывода
работа с потоками ввода выводаработа с потоками ввода вывода
работа с потоками ввода вывода
 
09 rec file
09 rec file09 rec file
09 rec file
 
файлы и файловая система
файлы и файловая системафайлы и файловая система
файлы и файловая система
 
НуП_Лекция 8. Работа с файлами на Ассемблере.ppt
НуП_Лекция 8. Работа с файлами на Ассемблере.pptНуП_Лекция 8. Работа с файлами на Ассемблере.ppt
НуП_Лекция 8. Работа с файлами на Ассемблере.ppt
 
Files folders 6 kl
Files folders 6 klFiles folders 6 kl
Files folders 6 kl
 
Linux basics. Занятие 3.
Linux basics. Занятие 3. Linux basics. Занятие 3.
Linux basics. Занятие 3.
 
лабораторная работа №7
лабораторная работа №7лабораторная работа №7
лабораторная работа №7
 
04 - Hadoop. HDFS Java API
04 - Hadoop. HDFS Java API04 - Hadoop. HDFS Java API
04 - Hadoop. HDFS Java API
 
Python: ввод и вывод
Python: ввод и выводPython: ввод и вывод
Python: ввод и вывод
 
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-выводКурс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
 
лабораторная работа №8
лабораторная работа №8лабораторная работа №8
лабораторная работа №8
 
лабораторная работа №8
лабораторная работа №8лабораторная работа №8
лабораторная работа №8
 
лек9 10
лек9 10лек9 10
лек9 10
 
файлова система
файлова системафайлова система
файлова система
 

More from Moscow Aviation Institute (National Research University), MAI

Инструкция по активации Azure Pass
Инструкция по активации Azure PassИнструкция по активации Azure Pass
Инструкция по активации Azure Pass
Moscow Aviation Institute (National Research University), MAI
 
lecture-monitoring and performance tuning of the computer
lecture-monitoring and performance tuning of the computerlecture-monitoring and performance tuning of the computer
lecture-monitoring and performance tuning of the computer
Moscow Aviation Institute (National Research University), MAI
 

More from Moscow Aviation Institute (National Research University), MAI (9)

Инструкция по активации Azure Pass
Инструкция по активации Azure PassИнструкция по активации Azure Pass
Инструкция по активации Azure Pass
 
Open imcup ver.1.0
Open imcup ver.1.0Open imcup ver.1.0
Open imcup ver.1.0
 
ImCup
ImCupImCup
ImCup
 
Oop — cpp 1
Oop — cpp 1Oop — cpp 1
Oop — cpp 1
 
Progr labrab-6-2013 - c++ - functions
Progr labrab-6-2013 - c++ - functionsProgr labrab-6-2013 - c++ - functions
Progr labrab-6-2013 - c++ - functions
 
Progr labrab-4-2013-c++
Progr labrab-4-2013-c++Progr labrab-4-2013-c++
Progr labrab-4-2013-c++
 
Presentation lab3-sem3-c++
Presentation lab3-sem3-c++Presentation lab3-sem3-c++
Presentation lab3-sem3-c++
 
Programming c++ (begin-if-else)
Programming c++ (begin-if-else)Programming c++ (begin-if-else)
Programming c++ (begin-if-else)
 
lecture-monitoring and performance tuning of the computer
lecture-monitoring and performance tuning of the computerlecture-monitoring and performance tuning of the computer
lecture-monitoring and performance tuning of the computer
 

работа с файлами в с++

  • 2. Для работы с файлами используются специальные типы данных, называемые потоками.  Поток ifstream служит для работы с файлами в режиме чтения.  Поток ofstream служит для работы с файлами в режиме записи.  Поток fstream служит для работы с файлами в режиме, как чтения, так и записи.
  • 3. В программах на C++ при работе с текстовыми файлами необходимо подключать библиотеки iostream и fstream. Чтобы записывать данные в текстовый файл необходимо: Описать переменную типа ofstream Отрыть файл с помощью функции open. Вывести информацию в файл с помощью cout. Обязательно закрыть файл.
  • 4. Чтобы считывать данные из текстового файла необходимо: 1. Описать переменную типа ifstream 2. Отрыть файл с помощью функции open. 3. Считать информацию из файла с помощью cin, при считывании каждой порции данных необходимо проверять, что чтение возможно. 4. Закрыть файл.
  • 5. Программа чтения из файла 1. #include <iostream> 2. #include <fstream> 3. using namespace std; 4. int main() 5. { 6. ifstream f("file.txt"); //создаем объект класса ifstream - f 7. //будем считывать 10 значений из файла 8. for (int i=0; i < 10; i++) 9. { 10. int v; // в эту переменную будем считывать значения 11. f >> v; 12. cout << v << endl; 13. f.close(); 14. } 15. }
  • 6. Программа записи в файл 1. #include <iostream> 2. #include <fstream> 3. using namespace std; 4. int main() 5. { 6. ofstream f("ofile.txt"); //создаем объект класса ofstream - f 7. //будем записывать 10 значений в файл 8. for (int i=0; i < 10; i++) 9. { 10. int v; // в эту переменную будем записывать значения с клавы 11. cin >> v; 12. f << v << endl; 13. f.close(); 14. } 15. }
  • 7. Если не знаем сколько в файле значений#include <iostream> #include <fstream> using namespace std; int main() { ifstream f("file.txt"); //создаем объект класса ifstream - f //eof становится true, когда мы достигаем конца файла //это надо, когда мы не знаем, сколько будет значений в файле while (!f.eof()) //цикл выполняется, пока не конец файла { int v; f >> v; // считывать из f cout << v << endl; } f.close(); }
  • 9. ifstream f("file.txt"); //создаем объект класса ifstream - f while (true) { int v; f >> v; // считывать из f if (!f.eof()) cout << v << endl; //тогда вывести на экран else break; }
  • 10. Задание Напишите программу, которая вычисляет среднее арифметическое чисел, находящихся в файле numbers.txt (в нем должны быть 5 целых чисел) и выводит рез-тат на экран
  • 11. Задание Напишите программу, которая вычисляет среднее арифметическое чисел, введенных с клавиатуры и выводит результат в файл numbers.txt
  • 12. Задание самостоятельно создать программу, которая считывает из файла file1.txt и записывает значения в file2.txt