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

Краткая теория. Лабораторная работа №3

Читайте также:
  1. I. Военный коммунизм": теория и практика.
  2. I. Краткая теория
  3. I. Краткая характеристика группы занимающихся
  4. II. Теория метода и описание установки
  5. А. МАСЛОУ И ТЕОРИЯ САМОАКТУАЛИЗАЦИИ
  6. А.Вейсманның ұрықтық плазманың үздіксіздігі теориясын сыналы түрде бағалаңыз.
  7. Административная теория организации и управления по А. Файолю

Лабораторная работа №3

Файлы в С++

 

Цель работы: программирование в Visual С++ с использованием функций структуры FILE для работы с файлами (чтение из файла, запись в файл).

Краткая теория

Для работы с файлами в языке C / C ++ предназначена структура FILE, функции которой перечислены ниже. Для применения этих функций, прежде всего, необходимо создать указатель на структуру FILE, в который будет помещен адрес открытого файла с помощью функции fopen. Прототип этой функции имеет следующий вид:

FILE * fopen (const char * filename, const char * mode);

Функция fopen ()открывает файл и инициализирует связанный с ним поток данных. Аргумент mode устанавливает режим открытия файла, его возможные значения приведены в табл. 3.1. Спецификация режима может быть дополнена символами t или b, указывающими, в каком режиме открывать файл: соответственно в текстовом или двоичном. Они отличаются обработкой символов перехода на новую строку. По умолчанию файл открывается в текстовом режиме, при котором комбинация символов «возврат каретки» и «перевод строки» (0х13 0х10, т.е. «\ r \ n») при вводе преобразуются в одиночный символ перевода строки (при выводе выполняется обратное преобразование). В двоичном режиме эти преобразования не выполняются.

Режим Описание
r Файл открывается только для чтения
w Файл открывается только для записи с усечением. Если файл не существует, то он создается в каталоге, заданном в параметре filename. Указатель записи-чтения устанавливается в нуль. После закрытия файл имеет новый размер, соответствующий последнему положению указателя записи-чтения
а Файл открывается для пополнения, т.е. после его открытия указатель записи-чтения устанавливается на позицию конца файла
r+ Файл открывается для обновления, доступен для чтения и записи, после закрытия не происходит усечения файла. При открытии указатель записи-чтения устанавливается в начало файла
w+ Файл открывается для обновления, доступен для чтения и записи. Если файл не существует, он создается в каталоге, заданном в параметре filename. Указатель записи-чтения устанавливается в нуль. После закрытия файл будет иметь новый размер, соответствующий последнему положению указателя записи-чтения
а+ Файл открывается для обновления, доступен для чтения и записи. После его открытия указатель записи-чтения устанавливается в позицию конца файла. После закрытия файла не происходит его усечения

Возвращаемое значение:указатель на структуру FILE. Этот указатель затем передается в качестве аргумента другим функциям, работающим с потоком. Если файл не может быть открыт, возвращается NULL -указатель.

Для записи в файл используют функцию:

int fprintf (FILE *stream, «символьная строка формата», список_переменных);

Функция формирует по заданным аргументам символьную стро­ку, которая записывается в поток stream. Форматирование сим­вольной строки происходит таким же образом, как и в функции printf().

Возвращаемое значение: число записанных в поток символов. В случае ошибки возвращается отрицательное значение (чаще всего EOF (WEOF)).

Для чтения данных из файла используют функцию:

int fscanf (FILE *stream, «символьная строка формата», список_адресов_переменных);

Функция считывает данные из потока данных stream. Форматирование сим­вольной строки происходит таким же образом, как и в функции scanf().

Возвращаемое значение: число успешно преобразованных и присвоенных полей либо EOF в случае попытки считывания конца файла.

 

Пример. Записать в файл 5 целых чисел и строку. Считать из файла 5 чисел и все символы, пока небудет достигнут конец файла.

 

#include <stdio.h>

void main()

{ FILE *file;

char file_name[] = "file.txt\0";

char string[50] = "Text message\0";

char symbol;

int i, k;

 

file = fopen(file_name, "w"); //открыли файл на запись

for (i=0; i<5; i++)

fprintf(file, "%i ", 10*i); // запись числа с пробелом в файл

fprintf(file, "%s", string); // запись строки в файл

 

fclose(file); // закрыли файл

 

file = fopen(file_name, "r"); //открыли файл на чтение

if(file!= NULL) // проверка открытия файла

{for(i=0; i<5; i++)

{ fscanf(file, "%i ", &k); //чтение числа с пробелом из файла

printf ("number[%i] = %i\n", i, k); //вывод числа на экран

}

 

while (fscanf(file, "%c", &symbol)!= EOF) // чтение символов из файла

printf("symbol = %c\n", symbol); //вывод символа на экран

}

 

else // если файл не удалось открыть на чтение

printf ("file not found.\n");

fclose(file);

}

 

 

Рисунок 1 – Результат работы программы

 

 

Рисунок 2 – Структура файла file.txt после завершения работы программы

 

Задание. Разработать программу, которая должна:

1) записать данные в исходный файл;

2) считать данные из исходного файла;

3) выполнить соответствующие варианту вычисления и записать их результаты в итоговый файл и/или показать на экране.

Варианты заданий

1. Создать файл и записать в него n целых чисел. Из исходного файла сформировать два файла с четными и нечетными числами соответственно и записать их в разные файлы. Определить наибольший четный и наименьший нечетный компоненты исходного файла и показать их на экране.

2. Создать файл и записать в него n целых чисел. На основе исходного файла создать итоговый файл, содержащий массив удвоенных нечетных чисел. Определить, является ли итоговый массив упорядоченным по возрастанию и отобразить ответ на экране.

3. Создать файл и записать в него n целых чисел. Найти разность между суммой нечетных чисел, находящихся в файле и максимальным значением файла. Записать полученный результат в итоговый файл.

4. Создать файл и записать в него n целых чисел. Сформировать в итоговом файле массив положительных чисел, делящихся на пять без остатка, используя элементы исходного файла. Определить, является ли итоговый массив упорядоченным по убыванию и отобразить ответ на экране.

5. Создать файл и записать в него n вещественных чисел. Из компонентов исходного файла сформировать массивы положительных и отрицательных простых чисел и записать их в два файла. Вычислить количество нулевых компонентов файла и показать результат на экране.

6. Создать файл и записать в него n вещественных чисел. Найти сумму последней группы четных элементов и записать ее в итоговый файл.

7. Создать файл и записать в него n целых чисел. Используя исходный файл сформировать массив для записи в итоговый файл, элементы которого не являются простыми числами и расположены до минимального элемента исходного массива.

8. Создать файл и записать в него n целых чисел. В итоговый файл записать числа, расположенные в исходном файле между минимальным и максимальным элементами.

9. Создать файл и записать в него n вещественных чисел. Записать в итоговый файл элементы исходного файла, внеся в него числа, превосходящие среднее арифметическое значение среди положительных значений исходного файла.

10. Создать файл и записать в него n целых чисел. Записать в итоговый файл массив, содержащий числа, расположенные в исходном файле до минимального и после максимального элемента исходного файла.

11. Создать файл и записать в него n целых чисел. Найти произведение первой группы, состоящей из нечетных чисел и записать его в итоговый файл.

12. Создать файл и записать в него n целых чисел. Из файла целых чисел сформировать массив для записи в итоговый файл, поместив в него только ненулевые компоненты, находящиеся после максимального элемента исходного массива.

13. Создать файл и записать в него n целых чисел. Из исходного файла сформировать массив, в котором вначале расположить четные, а затем нечетные числа. Записать полученный массив в итоговый файл. Определить номера наибольшего нечетного и наименьшего четного компонентов и показать их на экране.

14. Создать файл и записать в него n вещественных чисел. Найти сумму последней группы отрицательных элементов и записать ее в итоговый файл.

15. Создать файл и записать в него n целых чисел. В файле поменять местами максимальное среди отрицательных и наибольшее среди четных чисел. Полученный массив записать в итоговый массив.

16. Создать файл и записать в него n целых чисел. Из исходного файла переписать все кратные трем числа, значение которых превышает среднее арифметическое массива, в итоговый файл.

17. Создать файл и записать в него n целых чисел. Найти среднее арифметическое среди нечетных чисел, расположенных после минимального значения, записать результат в итоговый файл.

18. Создать файл и записать в него n целых чисел. Поменять местами первое кратное 7 и последнее отрицательное число в файле. Полученный массив записать в итоговый файл.

19. Создать файл и записать в него n целых чисел. В итоговый файл записать все четные числа, значение которых не больше половины максимального значения исходного файла.

20.Создать файл и записать в него n целых чисел. Найти разность между суммой четных чисел и произведением нечетных чисел, находящихся в файле. Записать результат в итоговый файл.

21. Создать файл и записать в него n целых чисел. Найти в нем группу положительных элементов наибольшей длины и записать ее в итоговый файл.

22. Создать файл и записать в него n целых чисел. В итоговый файл записать массив, элементы которого взяты из исходного файла, кратны 5 и расположены после максимального значения исходного файла.

23. Создать файл и записать в него n целых чисел. Из исходного файла сформировать массив, записав в него только кратные 3 значения, находящиеся до минимального элемента файла. Записать полученный массив в итоговый файл.

24. Создать файл и записать в него n вещественных чисел. В итоговый файл записать массив, сформировав его из элементов исходного файла, которые превосходят среднее значение среди четных значений исходного файла.

25. Создать файл и записать в него n вещественных чисел. Поменять местами последнее четное число в массиве исходного файла с наименьшим отрицательным. Результат записать в итоговый файл

 


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



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