ݺߣ

ݺߣShare a Scribd company logo
Лабораторная работа №7.  Работа с динамической памятью, строками и файлами
Задание на лабораторную работу Необходимо обработать текстовый файл. В первой строке файла указано общее число строк. Выделить память под массив указателей на строки, ввести текст построчно, динамически выделяя память для хранения каждой строки и записывая указатель в массив. Вывести на экран исходный текст. Выполнить один из вариантов обработки текста. Программа реализуется на языках C или Pascal в соответствии с указанием преподавателя.
Язык программирования  C Динамическое выделение памяти Данные, которые создаются, инициализируются и уничтожаются по требованию программиста называются динамическими. Для управления такими данными используются специальные стандартные функции,  прототипы которых описаны в заголовочном файле <malloc.h> (для некоторых компиляторов <alloc.h>). Для запроса  динамической  памяти служит функция malloc(), которая имеет следующий прототип: void * malloc(size_t size);
Типичная последовательность действий при работе с динамической памятью: double *A; int n; ... n = 200; ... A = (double *) malloc( n * sizeof(double) ); ... /* Работа с массивом  A  */ ... free ( A );
Работа с файлами Файл – это поименованная область на диске, содержащая какую-либо  информацию, например, текст программы, данные для программы, документ. Файлы бывают текстовые и двоичные (бинарные).
Работа с файлами Текстовые файлы – это файлы, которые создаются или которые можно просмотреть с помощью текстовых редакторов. В операционной системе  MS DOS  текстовые файлы представляют собой последовательность символьных строк. Каждый символ занимает один байт. Строка заканчивается двумя символами: «возврат каретки» (с кодом 13) и «перевод строки» (с кодом 10).
Работа с файлами Двоичные файлы содержат информацию во внутреннем представлении. Примером двоичного файла является  exe -файл, содержащий программу в машинных командах. Прикладная программа тоже может создать двоичный файл, записав в него данные в том виде, в каком они хранятся в памяти (к примеру, типа  int ).
Для чтения информации из файла служат функции: fscanf ()  – форматированный ввод, fgets ()  – чтение одной строки, fgetc ()  – чтение одного символа, fread ()  – ввод заданного числа байтов (символов). Для записи информации в файл используются функции: fprintf ()  – форматированный вывод, fputs ()  – вывод строки, fputc ()  – вывод одного символа, fwrite ()  – вывод заданного числа байтов (символов).
Некоторые функции доступа  к файлам fopen  – открытие файла. Прототип функции: FILE * fopen (char * fname, char * mode); Первый параметр  fname  задает имя открываемого файла, второй – режим открытия файла или вид его обработки. Параметр  mode  может задаваться в виде: “ r ”  –  чтение файла, “ w ”  – запись в файл (если файл существует, он стирается), “ a ”  –  добавление информации в конец файла, “ r +”  – чтение и запись.
Пример FILE *fout, *fmod;  /* указатели на выходной и модифицируемый файлы */ char fname[13];  /* имя модифиц. файла */ fout = fopen (“f1.txt”, “w”); puts(“Введите имя модифицируемого файла”); gets (fname); if  ((fmod = fopen(fname, “r+”) ==NULL) {  puts (“Файл в текущем каталоге не найден”); exit  (1); }

More Related Content

лабораторная работа №7

  • 1. Лабораторная работа №7. Работа с динамической памятью, строками и файлами
  • 2. Задание на лабораторную работу Необходимо обработать текстовый файл. В первой строке файла указано общее число строк. Выделить память под массив указателей на строки, ввести текст построчно, динамически выделяя память для хранения каждой строки и записывая указатель в массив. Вывести на экран исходный текст. Выполнить один из вариантов обработки текста. Программа реализуется на языках C или Pascal в соответствии с указанием преподавателя.
  • 3. Язык программирования C Динамическое выделение памяти Данные, которые создаются, инициализируются и уничтожаются по требованию программиста называются динамическими. Для управления такими данными используются специальные стандартные функции, прототипы которых описаны в заголовочном файле <malloc.h> (для некоторых компиляторов <alloc.h>). Для запроса динамической памяти служит функция malloc(), которая имеет следующий прототип: void * malloc(size_t size);
  • 4. Типичная последовательность действий при работе с динамической памятью: double *A; int n; ... n = 200; ... A = (double *) malloc( n * sizeof(double) ); ... /* Работа с массивом A */ ... free ( A );
  • 5. Работа с файлами Файл – это поименованная область на диске, содержащая какую-либо информацию, например, текст программы, данные для программы, документ. Файлы бывают текстовые и двоичные (бинарные).
  • 6. Работа с файлами Текстовые файлы – это файлы, которые создаются или которые можно просмотреть с помощью текстовых редакторов. В операционной системе MS DOS текстовые файлы представляют собой последовательность символьных строк. Каждый символ занимает один байт. Строка заканчивается двумя символами: «возврат каретки» (с кодом 13) и «перевод строки» (с кодом 10).
  • 7. Работа с файлами Двоичные файлы содержат информацию во внутреннем представлении. Примером двоичного файла является exe -файл, содержащий программу в машинных командах. Прикладная программа тоже может создать двоичный файл, записав в него данные в том виде, в каком они хранятся в памяти (к примеру, типа int ).
  • 8. Для чтения информации из файла служат функции: fscanf () – форматированный ввод, fgets () – чтение одной строки, fgetc () – чтение одного символа, fread () – ввод заданного числа байтов (символов). Для записи информации в файл используются функции: fprintf () – форматированный вывод, fputs () – вывод строки, fputc () – вывод одного символа, fwrite () – вывод заданного числа байтов (символов).
  • 9. Некоторые функции доступа к файлам fopen – открытие файла. Прототип функции: FILE * fopen (char * fname, char * mode); Первый параметр fname задает имя открываемого файла, второй – режим открытия файла или вид его обработки. Параметр mode может задаваться в виде: “ r ” – чтение файла, “ w ” – запись в файл (если файл существует, он стирается), “ a ” – добавление информации в конец файла, “ r +” – чтение и запись.
  • 10. Пример FILE *fout, *fmod; /* указатели на выходной и модифицируемый файлы */ char fname[13]; /* имя модифиц. файла */ fout = fopen (“f1.txt”, “w”); puts(“Введите имя модифицируемого файла”); gets (fname); if ((fmod = fopen(fname, “r+”) ==NULL) { puts (“Файл в текущем каталоге не найден”); exit (1); }