Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа по дисциплине «Математическое обеспечение ЭВМ» на тему «Файловая система UNIX»

.doc
Скачиваний:
3
Добавлен:
20.05.2014
Размер:
37.89 Кб
Скачать

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ

(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

Кафедра кибернетики

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

по дисциплине

«Математическое обеспечение ЭВМ»

на тему: «Файловая система UNIX»

Выполнила студентка группы М-75

Катышева С.Н.

Проверил проф. д.т.н.

Гостев И.М.

Москва 2009

Задание: Продемонстрировать навыки работы с файлами на примере программы на языке С.

Программа на языке C реализует следующую задачу:

В файле а1.txt находятся символы, среди которых числа от 0 до 9. Следует переписать числа в файл a2.txt, разделяя их пробелами, посчитать количество этих чисел и записать в обратном порядке.

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <ctype.h> // Объявляет функции, предназначенные для проверок символов

int main ()

{

FILE *f1,*f2;

int i=0,k=0,j,c,p;

char s[255];

//открываем файлы

if ((f1=fopen("a1.txt","r"))==NULL) // f1 теперь указатель на a1.txt

{

printf("\n Can't open f1.\n");getche();

exit(1);

}

if ((f2=fopen("a2.txt","w+"))==NULL)

{

printf("\n Can't open f2.\n");getche();

exit(1);

}

// Записываем в f2 числа из f1

do

{

c = fgetc(f1); //Чтение текущего символа из входного //потока f1

if (c >= '0' && c <= '9') {

i++;

fprintf(f2, "%c ", c); }

else if (c=='\n ')

fprintf(f2,"\n ");

} while (c!= EOF); // Пока не конец файла

// Запись чисел в обратном порядке

for (j=i;j>0;j--)

{

fseek(f2,2*(j-1),SEEK_SET); // Переход на позицию 2*(j-1)

c=fgetc(f2);

s[k]=c; s[k+1]=' '; k=k+2; // Проходим в обратном порядке

}

s[k]='\0'; // Последним символом записываем null-символ

fseek(f2,0,SEEK_END); // Перемещение к концу потока

fprintf(f2,"\n");

k=fputs(s,f2);

fprintf(f2,"\n");

fprintf(f2,"V ishodnom faile %d chisel\n ", i);

//Закрываем файлы

fclose(f1);

fclose(f2);

return 0;

}

Содержание файла a1.txt:

dgjk635 47gig7 rg!,4145tg57 ge5

tg5g54

Содержание файла a2.txt:

6 3 5 4 7 7 4 1 4 5 5 7 5 5 5 4

4 5 5 5 7 5 5 4 1 4 7 7 4 5 3 6

V ishodnom faile 16 chisel

2