- COM1 (AUX), COM2 – имена последовательных портов. Эти порты предназначены для связи с другими компьютерами и подключения дополнительных внешних устройств.
- NUL – фиктивное внешнее устройство.
22.2 Потоки.
При работе с потоком можно производить следующие действия:
Открытие потока.
Прежде чем начать работать с потоком, его необходимо открыть. При этом поток связывается со структурой типа FILE. Определение структурного типа FILE находится в заголовочном файле stdio.h. В структуре FILE содержатся компоненты, с помощью которых ведется работа с потоком, в частности, указатель на буфер, указатель текущей позиции в потоке и другая информация.
Синтаксис объявления указателя на поток:
FILE *<указатель на поток>;
Пример: #include<stdio.h>
FILE *fp;
Синтаксис объявления функции открытия потока:
FILE fopen (char*<имя файла>, char*<вид обработки>);
Функция fopen – открывает поток данных, связывающий с внешним файлом, и возвращает адрес буфера ОП. Прототип функции находится в файле stdio.h
Параметры функции:
<имя файла> - первый параметр функции fopen может быть задан следующими способами:
1)строковой константой, например,
FILE*f;
f= fopen (“D:\\USES\\SAPR91\\<имя файла>.txt, <вид обработки>)
2) переменной, например, FILE *f;
char*imf= (char*)malloc(13);
printf (“Введите имя файла”);
gets (imf);
fp=fopen (imf, <вид обработки>);
<вид обработки> - второй параметр функции fopen – это строковая константа, которая может принимать одно из следующих значений;
“r” – открыть существующий файл для чтения;
“w” – открыть файл для записи, если существовал, то его содержимое стирается;
“a” – запись в конец файла, файл создается, если он не существовал;
“r+” – существующий файл открывается для чтения и записи;
“w+” – открыть файл для чтения и записи, если файл существовал, его содержимое теряется;
“a+” – открыть файл для чтения и добавления, если файл не существовал, он создается.
Если поток открыт в режиме “a” или “a+” данные всегда записываются в конец файла, хотя указатель можно всегда перенести, используя соответствия функции – при записи он всегда будет перемещаться на конец файла, т.е. данные, что были в файле, не могут быть затерты.
Если поток открыт в режимах (r+ и w+) необходимо позиционировать указатель файла.
Типы потоков.
Поток можно открыть в текстовом, либо в двоичном режиме.
В текстовом режиме прочитанная из потока комбинация символов CR (B) – возврат каретки и LF(10) – перевод строки, преобразуются в один символ новой строки ‘\n’
При записи в поток в тестовом режиме осуществляется обратное преобразование, т.е. символ новой строки ‘\n’(LF) заменяется последовательностью CR и LF.
Если файл, связанный с потоком, хранит не текстовую, а произвольную двоичную информацию, то указания преобразования не выполняются.
При открытии потока могут возникнуть следующие ошибки:
- указанный файл, связанный с потоком, не найден (для режима чтения);
- диск заполнен или защищен от записи и т.п.
В перечисленных случаях указатель на поток приобретает значение NULL.
В программе в любом случае должна быть предусмотрена проверка наличия файла перед работой с ним.
FILE*fp; char*imf = (char*) malloc(13);
Printf (“имя файла”); gets(imf);
f=fopen (imf, “r”);
y (f!=NULL) {<обработка файла> fclose(f):}
else printf (“Файл %S не откроется для чтения”, inf);
Способа ввода вывода в Си.
Существуют три способа ввода вывода данных вниз файла:
- прямой(неформатированный);
- символьный;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.