- •Препроцессор Си
- •6) Какой процесс называется ”циклическим” ? Чем отличаются операторы while и do……while? Поясните понятие “Вложенный цикл”.
- •Int main()
- •Int main()
- •7. Назовите отличия итерационных циклов и цикла с параметром. Какова структура циклов с пред- и постусловием? как выполняются эти циклы?
- •14. Функции для ввода и вывода строк. Функции, реализующие операции со строками.
- •17. Организация списков и их обработка. Методы организации и хранения линейных списков.
- •2.1.4. Организация двусвязных списков
- •2.1.6. Сжатое и индексное хранение линейных списков
- •Int *ptr_a; char *ptr_ch, *ptr_var;
- •30 Обращение к файлам. Поиск и замена в файле. Приведите пример программ обработки файлов.
- •Void main()
30 Обращение к файлам. Поиск и замена в файле. Приведите пример программ обработки файлов.
В C++ отсутствуют операторы для работы с файлами. Все необходимые действия выполняются с помощью функций, включенных в стандартную библиотеку. Они позволяют работать с различными устройствами, такими, как диски, принтер, коммуникационные каналы и т.д. Эти устройства сильно отличаются друг от друга. Однако файловая система преобразует их в единое абстрактное логическое устройство, называемое потоком.
Объявление файла
FILE *идентификатор;
Пример
FILE *f;
Открытие файла:
fopen(имя физического файла, режим доступа)
Режим доступа — строка, указывающая режим открытия файла файла и тип файла
Типы файла: бинарный (b); текстовый (t)
Значение Описание
r Файл открывается только для чтения
w Файл открывается только для записи. Если соответствующий физический файл существует, он будет перезаписан
a Файл открывается для записи в конец (для дозаписи) или создается, если не существует
Например; Дано имя файла и вещественные числа A и D. Создать файл вещественных чисел с данным именем и записать в него 10 первых членов арифметической прогрессии с начальным членом A и разностью D: A, A + D, A + 2•D, A + 3•D, … .
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
Void main()
{int i, n=10, a,d,k;
char fname[]="c:\\number.txt";
FILE*fp;
fp=fopen(fname,"w");
cin>>a>>d;
for(i=1;i<=n;i++)
{k=a+d*i;
fprintf(fp,"%i",k);}
fclose(fp);
}
Для записи файла и последующего чтения его, нам понадобятся объекты классов ifstream ofstream.
Для использования возможности работы с файлами необходимо включить файл #include<fstream.h>
Если при iostream ввод cin, а вывод cout, то при fstream ifstream in ofstream out.
Чтобы привязать тот или иной поток к файлу используется метод open, к которому необходимо передать параметр текстовую строку, содержащую имя открываемого поля
In.open (“input.txt”)
Out.open (“input.txt”)
После открытия файлов и привязки к их файловым потокам, работать с файлами можно так же как со стандартными потоками ввода вывода.
Чтобы вывести значение переменной Х в поток out используется следующая операция
Out<<x;
А чтобы считать значение переменной из потока используется
in>>x;
Для закрытия раннего открытого файла используется метод close(). In.close() out.close()
Закрытый файловый поток можно переоткрыть заново при помощи метода open, привязав его к тому же или другому файлу