Содержание
- 2. Файлы Некоторые понятия ООП Класс является описанием совокупности сходных между собой объектов. Объект класса часто также
- 3. Файлы в С++ 1. Основные понятия Связь с внешними источниками, приемниками и носителями информации в Си++
- 4. Файлы ЗАМЕЧАНИЕ: До начала операции ввода-вывода конкретному внешнему файлу должна быть поставлена в соответствие специальная переменная
- 5. Файлы 2.Файловый ввод/вывод с помощью потоков Файл рассматривается как поток (stream), представляющий собой последовательность считываемых или
- 6. Файлы Для работы с файлами необходимо подключить заголовочный файл fstream.h. ЗАМЕЧАНИЕ: файл iostream.h автоматически включается, т.е.
- 7. Файлы Этапы записи (ввода) информации в файл: Создать переменную (объект) типа ofstream для управления потоком вывода
- 8. Файлы ЗАМЕЧАНИЕ: 1 и 2 этап можно объединить оператором: ofstream fout(“test.txt”); 3) Использовать созданный объект аналогично,
- 9. Файлы ЗАМЕЧАНИЕ: Открытие файла таким способом позволяет создать новый файл, если файла с таким именем не
- 10. Файлы Этапы чтения (вывода) из файла: Создать переменную (объект) типа ifstream для управления потоком ввода Например:
- 11. Файлы 3) Использовать созданный объект аналогично, как cin: int x; float f; char st[20]; fin >>
- 12. Файлы ЗАМЕЧАНИЕ: Для проверки наличия нужного файла на диске (в случае отсутствия файла значение объекта потока
- 13. Файлы 3. Дополнительные функции файлового ввода / вывода Возвращает указатель на буфер, связанный с потоком: filebuf*
- 14. Файлы ЗАМЕЧАНИЕ: cin – объект класса istream, соответствующий стандартному вводу. В общем случае он позволяет читать
- 15. Файлы Возвращает ненулевое значение, если достигнут конец файла: int eof(); Пример: while (!fin.eof()) fin >> x;
- 16. Файлы Выводит в поток один символ: ostream& put(char); Допускает сцепленный вызов: fout.put(‘A’).put(‘\n’); Выводит в файл из
- 17. Файлы Например, оператор fout.write(s,5); записывает в поток fout 5 символов из массива s. Причем эти символы
- 18. Файлы Аналогичный метод для чтения данных в символьный массив также без всякой обработки: istream& read(signed char*,int);
- 19. Файлы Читает одиночный символ из указанного потока (даже если это символ-разделитель) и возвращает этот символ в
- 20. Файлы Например, цикл поиска в файле символа «$» можно организовать следующим образом: char c; while ((c
- 21. Файлы Вводит очередной символ из входного потока (даже если это символ-разделитель) и сохраняет его в символьном
- 22. Файлы Предыдущий пример с использованием данного варианта функции get() можно было бы переписать так: while (fin.get(c))
- 23. Файлы Третий вариант функции get() принимает три параметра: символьный массив, максимальное число элементов и символ-ограничитель (по
- 24. Файлы ЗАМЕЧАНИЕ: Символы читаются из входного потока до тех пор, пока не достигается число символов, на
- 25. Файлы Действует подобно предыдущему (третьему) варианту функции get(), но удаляет символ-ограничитель из потока ( т. е.
- 26. Файлы ЗАМЕЧАНИЕ: С помощью getline() можно следующим образом записать цикл чтения файла по строкам: while (!fin.eof())
- 27. Файлы 4. Режимы файлов Режим файла описывает, как используется файл: для чтения, для записи, для добавления
- 28. Файлы Список констант (флагов), задающих режим файла
- 29. Файлы Чтобы дописать в конец файла: ofstream fout; fout.open(“test.txt”,ios::app); if (fout.is_open()) { fout fout.close(); } else
- 30. Файлы ЗАМЕЧАНИЕ 1) Если при связывании потока с файлом необходимо указать одновременно несколько режимов, их следует
- 31. Файлы 2) По умолчанию, при связывании файла с потоком ввода используется константа ios::in (открыть для чтения),
- 32. Файлы 5. Двоичные файлы Данные в файле можно сохранить в текстовой форме или двоичном формате. Текстовая
- 33. Файлы Двоичный формат означает, что число сохраняется во внутреннем представлении, т. е. вместо символов сохраняется 64-разрядное
- 34. Файлы Например, двоичное представление числа 0.375
- 35. Файлы Особенности сохранения в двоичном формате чисел: Числа сохраняются более точно, поскольку он позволяет сохранить точное
- 36. Файлы Режим для работы с двоичными файлами: ios::binary 1) для сохранения данных в двоичном формате используется
- 37. Файлы Недостатки: адрес переменной необходимо преобразовать к типу указатель-на-char. Чтобы узнать размер переменной в байтах, можно
- 38. Файлы 2) для чтения данных из двоичного файла Используется соответствующая функция read() с объектом типа ifstream:
- 39. Файлы Пример 1: записать число в бинарный файл. Прочитать число из бинарного файла int y =
- 40. Файлы out.close(); //Закрываем файл //Показываем X до его изменений cout ifstream in(“C:/1.txt”, ios::binary|ios::in); //Открываем файл //
- 41. Файлы Пример 2: Запись объекта структуры в бинарный файл. Чтение объекта структуры из бинарного файла //Исходная
- 42. Файлы MyStruct X,Y; //Создали два объекта, //соответствующие структуре. Например //объект X имеет такие параметры X.Name =
- 43. Файлы //Открываем файл только для чтения, открываем в бинарном режиме fstream in(“C:/2.txt”,ios:: binary|ios::in); //Считываем информацию в
- 44. Файлы Пример 3: создаем два двоичных файла из одного массива int m[10]={0}; /* заполняем массив m
- 45. Файлы /* открываем файл для записи */ ofstream outstrm ("c:/binfiles/oonumber1.bin", std::ios::binary); if(outstrm.is_open()) { //поэлементно выводим массив
- 46. Файлы /* открываем другой файл для записи */ outstrm.open("c:/binfiles/oonumber2.bin", std::ios::binary); if(outstrm.is_open()) { // выводим массив в
- 47. Файлы // вывод двоичного файла на экран // открываем второй файл для чтения { ifstream instrm
- 48. Файлы // открываем первый файл для чтения ifstream instrm ("c:/binfiles/oonumber1.bin", std::ios::binary); int t[10] = {0}; //
- 49. Файлы В этом примере два двоичных файла из одного массива создаются разными способами: в файл oonumber1.bin
- 50. Файлы Затем те же файлы открываются как входные, читаются и выводятся на экран. Сначала открывается файл
- 51. Файлы Первый файл oonumber1.bin, который записывался в цикле по одному числу, читается сразу целиком в массив
- 52. Файлы Код C++ Запись объекта класса в бинарный файл. Чтение объекта класса из бинарного файла ======================
- 53. Файлы 6. Произвольный доступ к файлам Произвольный доступ к файлам предоставляет возможность переместиться в любое место
- 54. Файлы Функции для реализации «передвижения» по файлу: seekg() - передвигает указатель ввода (используется с объектом типа
- 55. Файлы Прототипы функции передвижения указателя ввода: istream& seekg(long); - устанавливает указатель чтения входного потока на абсолютную
- 56. Файлы istream& seekg(long,seek_dir); - перемещает указатель чтения входного потока на число байтов, заданное первым параметром. ЗАМЕЧАНИЕ:
- 57. Файлы Примеры вызова функции: //30 байтов от начала файла fin.seekg(30,ios::beg); //один байт назад от текущей позиции
- 58. Файлы Прототипы функции передвижения указателя вывода: ostream& seekp(long); ostream& seekp(long,seek_dir); ЗАМЕЧАНИЕ: Принципы работы этой функции полностью
- 59. Файлы Функции для проверки текущей позиции файлового указателя: tellg() - для потока ввода tellp() – для
- 61. Скачать презентацию