Similar presentations:
Работа с файлами
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