Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Низкоуровневый ввод-вывод

ТИПЫ, ОПЕРАЦИИ, ВЫРАЖЕНИЯ | Синтаксис и семантика операторов языка Си | Обработка числовых данных | Обработка символьных данных | ФУНКЦИИ И СТРУКТУРА ПРОГРАММЫ | УКАЗАТЕЛИ И МАССИВЫ | Основные сведения | Структуры и функции. Указатели на структуры. | Структуры со сылками на себя | Стандартный ввод-вывод |


Читайте также:
  1. Ввод-вывод без продвижения
  2. Стандартный ввод-вывод

 

Замечание: во всех задачах этого раздела при вводе-выводе использовать низкоуровневые средства системы UNIX.

 

8.1. Верно ли решена задача: «написать версию функции
int getchar(void), которая осуществляет небуферизованный ввод, читая по одной литере из входного потока»

a) int getchar (void)

{ char c;

return (read (0, &c, 1) == 1)? c: EOF);

}

b) int getchar (void)

{ int c;

return (read (0, &c, 1) == 1)? c: EOF);

}

c) int getchar (void)

{ char c;

return (read (0, &c, 1) == 1)? (unsigned char)c: EOF);

}

d) int getchar (void)

{ char c;

return (read (0, &c, 1) == 1)? (int)c: EOF);

}

 

8.2. Написать буферизованный вариант функции int getchar(void), когда функция осуществляет ввод большими порциями, но при каждом обращении к ней выдает только одну литеру.

 

8.3. Используя низкоуровневый ввод-вывод, реализовать следующие функции:

a) int putchar (int c)

b) char *gets (char *s)

c) int puts (const char *s)

 

8.4. Написать программу, копирующую свой стандартный ввод в стандартный вывод.

 

8.5. Написать программу, создающую файл - копию заданного файла. Имена файлов задаются в командной строке.

a) копирование по одной литере;

b) копирование блоками;

 

8.6. Программа. Создать файл, являющийся конкатенацией других файлов. Имена файлов задаются в командной строке (см. задачу 7.23).

 

8.7. Описать функцию, удваивающую в заданном файле каждую очередную четверку байт.

 

8.8. Программа. В каждом из данных файлов удалить те N–ки байт, в которых первый байт равен коду символа s. Имена файлов, символ s и величина N задаются в командной строке.

 

8.9. Описать функцию, определяющую количество символов s в тексте, состоящем из нечетных N-ок байт заданного файла. Имя файла, символ s и величина N – параметры функции.

 

8.10. Программа. Создать файл, содержащий значения функции sin(x)*cos(x)*exp(x) на отрезке [a,b] в точках xi = a+i*h, h = (b-a)/n, i = 0,1,…,n; имя файла и значения a, b, n задаются в командной строке.

 

8.11. Программа. В файле записана последовательность целых чисел. Создать файл, состоящий из чисел данного файла, значения которых меньше N. Имена файлов и величина N задаются в командной строке.

 

8.12. Программа. В конец файла f приписать

a) число 1234;

b) строку “end”;

 

8.13. Программа. В конец файла f приписать содержимое файла g.

 

8.14. Написать программу, приписывающую в конец файла f его содержимое.

8.15. Описать функцию char *get (char *f, int n, int pos), читающую n байт из файла f, начиная с позиции pos.

 

8.16. Программа. Содержимое файлов, длина которых меньше N байт, переписать в новый файл-результат и удалить такие файлы. Файлы, длина которых больше либо равна N байт, не изменяются и не удаляются. Имена файлов и величина N задаются в командной строке: fres f1 f2 …, где fres - имя файла-результата, f1, f2, … - файлы, содержимое которых должно быть проанализировано.

8.17. Написать программу слияния двух файлов в третий. Файл -результат формируется чередованием N-ок символов первого и второго файлов (если один из файлов длиннее другого, то его оставшаяся часть приписывается в конец файла-результата). Имена файлов и величина N задаются в командной строке.

 


Дата добавления: 2015-11-14; просмотров: 71 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Работа с файлами| Конвейер, перенаправление ввода-вывода

mybiblioteka.su - 2015-2024 год. (0.007 сек.)