- •Лабораторная работа n 1 Ввод-вывод в языке программирования c
- •Теоретические положения
- •Простой ввод-вывод
- •Ввод и вывод данных
- •Стандартные типы данных в с
- •Файловый ввод-вывод
- •Открытие файла
- •Закрытие файла
- •Ввод-вывод одиночного символа в файл
- •Ввод-вывод в файл по формату
- •Ввод-вывод символьных массивов в файл
- •Изменение текущей позиции в файле
- •Задание
- •Варианты заданий
Стандартные типы данных в с
int (Числа с фиксированной точкой)
Диапазон представления чисел: от -32768 до +32767.
В памяти занимает 2 байта.
char (Символьный тип)
Все символы таблицы ASCII.
В памяти занимает 1 байт.
float (Числа с плавающей точкой)
Диапазон представления чисел: от -3.4*10-38 до 3.4*1038.
В памяти занимает 4 байта.
double (Числа с плавающей точкой двойной точности)
Диапазон представления чисел: от -1.7*10-308 до 1.7*10308.
В памяти занимает 8 байт.
Файловый ввод-вывод
Под файлом будет подразумеваться порция информации на диске со своим именем. Часто бывает необходимо ввести некоторые данные из файла или вывести результаты в файл. Например, бывает необходимо обрабатывать массивы, которые слишком велики, чтобы полностью разместится в памяти.
Для работы с файлом в языке C необходима ссылка на файл. Для определения такой ссылки существует структура FILE, описанная в файле stdio.h. Данная структура содержит все необходимые поля для управления файлами, например: текущий указатель буфера, текущий счетчик байтов, базовый адрес буфера ввода-вывода, номер файла.
Открытие файла
Перед использованием файла в программе его необходимо открыть. Для этого существует функция fopen().
Пример использования функции:
FILE *new;
new=fopen(“text.txt”,”r”);
Данная функция имеет два аргумента:
имя файла (если файл находится не в текущей директории, то имя файла может включать в себя путь);
аргумент, определяющий способ открытия файла. Приведем основные значения данного аргумента:
“r” : считывание из файла;
“w”: запись в файл;
“a” : дополнение файла;
“r+”: открытие существующего файла для корректировки (чтение и запись);
“w+”: создание нового файла для корректировки (чтение и запись). Если файл с этим именем уже существует, он будет переписан;
“a+”: открытие для добавления. Открывает (или создает если файл не существует) файл, для записи в конец файла.
При открытии файла в режиме “r” открывается существующий файл. Если же использованы режимы “w” и “a”, и файл с указанным именем не найден, то создается новый файл.
Если использовать режим “w” для существующего файла, то его содержимое стирается, и только затем происходит запись.
Если добавить “t” (например “rt”, ”w+t”), то файл отрывается в текстовом режиме, а при добавлении “b” (“ab”, “r+b”) – в двоичном режиме.
По умолчанию файл открывается в текстовом режиме.
Функция при успешном открытии возвращает указатель на файл, а при неудачном – значение ‘NULL’, определенное в stdio.h как 0.
Закрытие файла
Чтобы закрыть открытый ранее файл, необходимо воспользоваться функцией fclose().
Пример использования функции:
int close_result;
close_result=fclose(new);
Аргументом функции является указатель на файл, который необходимо закрыть. Функция возвращает значение 0, если файл был закрыт успешно, и –1 в противном случае.
Ввод-вывод одиночного символа в файл
Выполняется при помощи функций getc() и putc().
Данные функции выполняют считывание и, соответственно, запись одиночного символа в файл. Рассмотрим пример их использования в программе:
FILE *in, *out;
char ch;
ch=getc(in); /* считывание символа из файла, на который указывает in*/
putc(ch, out); /* запись считанного символа в файл, на который указывает out */
Функция getc() использует в качестве параметра указатель на файл, а возвращает считанный символ. Напротив, функция putc() использует два аргумента: символ, который выводится в файл и указатель на этот файл. При успешном выполнении функция возвращает выведенный символ, а при ошибке – EOF.
