Программирование на языке C++
Как работать с файлами?
Принцип сэндвича
Обработка ошибок
Ввод данных
Вывод данных в файл
Чтение неизвестного количества данных
Задачи
302.75K
Category: programmingprogramming

Работа с файлами

1.

2. Программирование на языке C++

§ 68. Работа с файлами
2

3. Как работать с файлами?

Алгоритмизация и программирование, язык C++, 10 класс
3
Как работать с файлами?
файлы
текстовые
«plain text»:
• текст, разбитый на строки;
• из специальных символов
только символы перехода
на новую строку
К.Ю. Поляков, Е.А. Ерёмин, 2014
двоичные
• любые символы
• рисунки, звуки, видео, …
http://kpolyakov.spb.ru

4. Принцип сэндвича

Алгоритмизация и программирование, язык C++, 10 класс
4
Принцип сэндвича
хлеб
начинка
хлеб
#include <fstream>
открыть файл
работа с файлом
закрыть файл
файловые потоки
ifstream Fin; // поток ввода
ofstream Fout; // поток вывода
Fin.open ( "input.txt" );
Fout.open ( "output.txt" );
// здесь работаем с файлами
Fin.close();
Fout.close();
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru

5. Обработка ошибок

Алгоритмизация и программирование, язык C++, 10 класс
5
Обработка ошибок
!
В случае неудачи поток нулевой!
ifstream F;
F.open ( "input.txt" );
if ( F ) if ( F != NULL )
{
// здесь работаем с файлом
}
else
printf ( "Открыть файл не удалось." );
?
К.Ю. Поляков, Е.А. Ерёмин, 2014
Когда такое может быть?
http://kpolyakov.spb.ru

6. Ввод данных

Алгоритмизация и программирование, язык C++, 10 класс
6
Ввод данных
int a, b;
ifstream Fin;
Fin.fopen ( "input.txt" );
Fin >> a >> b;
fclose ( Fin );
Переход к началу открытого файла:
Fin.close();
Fin.open ( "input.txt" );
Определение конца файла:
eof = end of file, конец файла
if ( Fin.eof() )
printf("Данные кончились");
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru

7. Вывод данных в файл

Алгоритмизация и программирование, язык C++, 10 класс
7
Вывод данных в файл
int a = 1, b = 2;
ofstream Fout;
Fout.open ( "output.txt" );
Fout << a << "+" << b << "=" << a + b;
Fout.close();
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru

8. Чтение неизвестного количества данных

Алгоритмизация и программирование, язык C++, 10 класс
8
Чтение неизвестного количества данных
Задача. В файле записано в столбик неизвестное
количество чисел. Найти их сумму.
пока не конец файла
// прочитать число из файла
// добавить его к сумме
int S, x;
S = 0;
while( ! Fin.eof() )
{
Если удалось
if ( Fin >> x )
прочитать число, …
S = S + x;
}
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru

9. Задачи

Алгоритмизация и программирование, язык C++, 10 класс
9
Задачи
«A»: Напишите программу, которая находит среднее
арифметическое всех чисел, записанных в файле в
столбик, и выводит результат в другой файл.
«B»: Напишите программу, которая находит минимальное и
максимальное среди чётных положительных чисел,
записанных в файле, и выводит результат в другой файл.
Учтите, что таких чисел может вообще не быть.
«C»: В файле в столбик записаны целые числа, сколько их –
неизвестно. Напишите программу, которая определяет
длину самой длинной цепочки идущих подряд одинаковых
чисел и выводит результат в другой файл.
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
English     Русский Rules