Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
S_otvety_na_ekzamen.doc
Скачиваний:
2
Добавлен:
14.04.2019
Размер:
130.56 Кб
Скачать

39.Работа с файлами. Потоки. Буфер.

Объявление файловой переменной:

FILE *in;

Существует 2 вида потоков:

1)Текстовый поток — это последовательность символов.

2)Двоичный поток — это последовательность байтов, которая взаимно однозначно соответствует байтам на внешнем устройстве, причем никакого преобразования символов не происходит.

ofstream os("text.txt");//ввод с помощью потока в файл

os << "Hello";

os.close();

char a[6];

ifstream is("text.txt");//чтение из файла

is >> a;

cout << a;

is.close();

Для чтения и записи данных, тип которых может занимать более 1 байта, имеется две функции: fread() и fwrite() .

Для fread() буфер — это указатель на область памяти, в которую будут прочитаны данные из файла.

А для fwrite() буфер — это указатель на данные, которые будут записаны в файл.

40.Библиотека stdio. Связь с файлами. Открытие и закрытие файла.

Объявление файловой переменной:

FILE *in;

Открытие файла:

in = fopen("File", "r");

Команда закрытия файла:

fclose(in);

Вторым аргументом функции fopen является строка, определяющая режим открытия файла:

"r" – открывает существующий файл для чтения,

"w" – открывает/создает файл для перезаписи (старое содержимое стирается),

"a" – открывает/создает файл для дозаписи (старое содержимое сохраняется).

"r+" - существующий файл открывается для чтения/записи в любом месте, кроме конца файла (недопустимо увеличение размеров файла).

"w+" - файл открывается/создается для чтения/записи в любом месте файла (файл может увеличиваться, старое содержимое стирается).

"a+" - файл открывается/создается для чтения/записи в любом месте файла (файл может увеличиваться, старое содержимое сохраняется).

41.Библиотека stdio. Текстовые файлы – чтение и запись.

Для чтения/записи данных используются функции библиотеки stdio.h

ch=getc(in); // читает символ из файла in

putc(ch,out); // пишет символ в файл out

42.Библиотека stdio. Форматированный ввод/вывод.

fscanf(in,"%d",&age); // форматированный ввод из файла in

fprintf(out,"Data is %d.\n",age); // форматированный вывод в файл out

43.Библиотека stdio. Функция fseek().

Функция fseek() позволяет нам обрабатывать файл подобно массиву и непосредственно достигать любого определенного байта в файле, открытом функцией fopen(). fseek() имеет три аргумента и возвращает значение типа int.

Первый аргумент - указатель на файл, второй аргумент - к-во байтов, на которые нужно переместиться от точки, задаваемой третьим аргументом (0 - начало файла, 1 - текущая позиция, 2 - конец файла).

Функция fseek( ) возвращает 0, если все хорошо, и -1, если есть ошибка.

while(fseek(in, set++,0) ==0)

putchar(getc(in));

44.Работа с файлами. Переключение ввода/вывода.

45.Операторы времени компиляции inline и typedef.

Спецификатор inline указывает компилятору, что открытая подстановка тела функции предпочтительнее обычной реализации вызова функции и что он должен пытаться каждый раз генерировать в месте вызова код, соответствующий встраиваемой функции, а не создавать отдельно код функции (однократно) и затем вызывать её посредством обычного механизма вызова. inline int max(int x, int y) { return x > y ? x : y; }

Объявление, начинающееся с ключевого слова typedef, вводит новое имя для типа. Целью такого объявления часто является назначение короткого синонима для часто используемого типа. Например, при частом применении unsigned char можно ввести синоним uchar.

typedef unsigned char uchar;

// Теперь uchar – синоним для unsigned char

Имена, вводимые с помощью typedef, являются синонимами, а не новыми типами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]