Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Топ:
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Интересное:
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Дисциплины:
2019-12-26 | 174 |
5.00
из
|
Заказать работу |
|
|
Функции низкоуровневого ввода-вывода не выполняю никакой буферизации и форматирования. Они непосредственно обращаются к средствам ввода/вывода операционной системы.
При открытии файла на этом уровне возвращается описатель файла (file handle), представляющий собой целое число, используемое затем для обращения к этому файлу при дальнейших операциях. Для открытия используется функция open(), для закрытия – функция close().
Функция read() читает данные в указанный массив, а write() – выводит данные из массива в файл, lseek() – используется для перемещения по файлу.
Низкоуровневые функции не требуют включения заголовочного файла stdio.h, вместо него используется файл io.h.
Низкоуровневая система ввода-вывода не вошла в стандарт ANSI C, поэтому ее не рекомендуют для дальнейшего использования.
Ввод и вывод символов, строк, слов.
Наиболее общими функциями являются те, которые работают с отдельными символами. Функция getc() вводит один символ из указанного файлового потока в переменную типа int:
int ic;
ic=getc(stdin);
Вводится один символ из потока stdin.
Функция putc() передает один символ в указанный файловый поток:
putc(ic,stdout);
Для стандартных потоков stdin и stdout можно использовать функции getchar() и putchar() соответственно:
int ic;
ic=getchar();
putchar(ic);
Функции getch() и putch() являются низкоуровневыми функциями. Обычно функция getch() используется для перехвата символа, введенного с клавиатуры сразу после его нажатия. Нажатия клавиши “Enter” не требуется.
Для ввода/вывода текстовых строк можно использовать функции gets(), fgets(), puts(), fputs(). Функция fgets() имеет вид:
fgets(имя_массива, размер_массива, указатель_на_поток);
Она считывает символы в указанный массив и добавляет в конце null-символ. Считывание производится до заполнения массива, или до достижения конца файла. Символ перевода строки переписывается в массив.
|
Для ввода и вывода целых чисел можно использовать функции getw() и putw(). Они работают с двоичными файлами.
Форматированный ввод и вывод.
Богатый ассортимент средств управления форматом позволяет легко создавать таблицы, графики или отчеты. Функциями, выполняющими этот вывод, являются printf() - для стандартного потока вывода stdout, и fprintf() – для любого потока. Функция fprintf() имеет вид:
fprintf(поток_вывода, “формат”, перем_1, перем_2,…);
Работает она аналогично printf() и выводит данные в указанный поток вывода.
Для форматированного ввода используются функции scanf() и fscanf().
Для преобразования текстовой строки можно использовать sscanf(). Она работает аналогично fscanf(), но данные берет из сроки, а не из файла.
Потоки cin, cout, cerr.
В языке С++ имеется другая библиотека ввода/вывода, определяемая заголовочным файлом iostream.h. Ввод/вывод в ней определяется набором специальных классов. Аналогами потоков stdin, stdout и stderr являются cin, cout и cerr. Они открываются автоматически при запуске программы.
Операции выделения >> и вставки <<.
Для ввода/вывода с помощью указанных потоков используются специальным образом определенные операции “занести в поток” и “получить из потока”, << и <<. Операция >> выделяет данные из входного потока и помещает в указанные переменные, а операция << помещает значения указанных переменных в поток.
Приведем пример использования потока stdin и потока cin:
scanf(“%d%lf%c”,&ivalue,&dvalue,&cvalue);
cin>>ivalue>>dvalue>>cvalue;
Аналогично для вывода:
printf(“Integer:%d double: %lf”,ivalue,dvalue);
cout<<”Integer:”<<ivalue<<” double:”<<dvalue;
Практическое задание №4.
При выполнении этого задания студенты должны продемонстрировать знания и основные приемы работы с указателями и массивами, функциями файлового ввода-вывода, динамического распределения памяти и работы со строками литер. Процедуры ввода-вывода и счетные функции должны быть разнесены.
|
Для работы с файлами и прочими процедурами ввода-вывода используйте функции библиотеки stdio.h (fopen, fclose, (f)printf, (f)scanf, feof), для динамического распределения памяти - операторы new и delete, для операций со строками - функции библиотеки STRING (strcpy, strcat, strlen, strcmp).
Вариант 1.
Дан текстовый файл. Определите длину файла, количество строк в файле и количество пробелов в файле. Имя файла введите с консоли.
Вариант 2.
Распечатайте и запишите в файл таблицу значений полинома, заданного своими коэффициентами. Коэффициенты прочтите из файла. Файл состоит из строк, которые содержат одно действительное число в каждой строке. Число строк, а следовательно и количество чисел в файле, заранее неизвестно. Коэффициенты полинома записаны в файле, начиная с коэффициентов при младшем члене полинома. Имя файла с коэффициентами полинома, имя файла с таблицей значений, а также диапазон значений и шаг таблицы введите с консоли.
Контрольные примеры:
Вариант 3.
Напишите программу обработки статистических данных. Определите:
а) объем статистической выборки .
б) среднее арифметическое выборки
в) дисперсию
г) среднеквадратичное отклонение
Имя файла введите с консоли.
Файл состоит из строк, которые содержат одно действительное число в каждой строке. Число строк, а следовательно и количество чисел в файле, заранее неизвестно.
Вариант 4.
Дан файл, содержащий пары действительных чисел . Напишите программу, которая бы упорядочивала этот ряд в порядке возрастания x. Упорядоченный ряд запишите в файл. Имена входного и выходного файлов введите с консоли. Файл состоит из строк. Каждая строка содержит два действительных числа, разделенных пробелами или знаками табуляции. Количество строк в файле, а следовательно и количество пар чисел, заранее неизвестно.
Контрольные примеры:
Вариант 5.
Дан текстовый файл. Распечатайте и запишите в файл все слова, содержащие заданную подстроку. Имя входного и выходного файлов, а также подстроку введите с консоли.
Вариант 6.
Дан файл, содержащий записи, состоящие из двух полей - числового и текстового (подробно структуру файла см. приложение 5). Упорядочите записи в порядке возрастания числового поля. Упорядоченный список запишите в файл. Имена входного и выходного файлов вводите с консоли.
|
Файл состоит из строк. Каждая строка содержит единственную запись. Запись состоит из целого числа и единственного слова, разделенных пробелами (целое число идет первым). Число строк, а следовательно число записей заранее не известно.
Вариант 7.
Вычислите методом треугольника Паскаля.
, .
Полученные вектора запишите в файл построчно. Имя файла и количество строк n вводите с консоли.
Вариант 8.
Дан файл, содержащий список слов. Упорядочите список в алфавитном порядке и запишите упорядоченный список в файл. Имена входного и выходного файлов вводите с клавиатуры.
Файл состоит из строк. Каждая строка содержит единственное слово. Число строк в файле заранее не известно.
|
|
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!