Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C-fakepathELEMENT PROGRAMMIROVANIYA LAST.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.01 Mб
Скачать

40 Вопрос *** Файлы

Для работы с файлами они должны быть обьявлены. Для этого используются указатели.

FILE *имя,*имя1;

Пример

FILE *fin, *fout;

Слово FILE должно быть обязательно записано в верхнем регистре !!!!!!!!

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

Коды режимов приводяться ниже :

‘r’ только чтение, еслит файл не сущ. то не открывается

‘w’ только запись, если файл суш. то он стирается

‘a’ добавление, если не сущ. то он создается

‘r+’ ввод и вывод, если не сущест. то не открывается

‘w+’ открывает пустой файл для записи и чтения, если сущ.

то он стирается

‘a+’ как режим ‘a’ но допускает чтение

Файлы открываются следующим образом

fin=fopen(“vag.txt”,”r”);// только для чтения

fin=fopen(“vag1.txt”,”w”);// для записи

Для чтения из файла используется fscanf вместо scanf а для вывода fprintf вместо printf .

fscanf(s0,s1, s2);

Здесь s0-имя файла, s1 – список форматов; s2 – список переменных с символом & на первой позиции.

fprintf(s0,s1, s2);

Здесь s0-имя файла, s1 – список форматов, s2 – список переменных.

Для возврата файла вначало используется функция REWIND (file )

Для определения конца файла используется цикл while совместно с функцией EOF (имя файла)

Для закрытия файла используется функция fclose (имя файла)

Файл vag.txt должен предварительно создан и размещен в соответствующем каталоге !!!!! !!!!!

При указании пути используется не традиционная запись С:\ vag.txt а

С:\\ vag.txt ( т.е. 2 символа слэш) !!!!!

Пример 1.

В файле leyla.txt расположены числа 2 3 6 7 -2

#include <stdio.h>

#include <math.h>

void main (void)

{

FILE *min;

int i;int x,y,z,w;

min=fopen("c:\\leyla.txt","r");

for (i=1;i<4; i++)

fscanf(min,"%d\n",&x);

fscanf(min,"%d",&y);

fscanf(min,"%d\n",&w);

z=x+y+w;

printf("%d",z);

fclose (min);

}

Пример 2

В файле vag.txt размещены числа 2 3 6 7 -2 .

#include <stdio.h>

#include <math.h>

void main (void)

{

FILE *min;

int i;int x,y,z,w;

min=fopen("d:\\leyla.txt","r");

fscanf(min,"%d\n",&x);

fscanf(min,"%d",&y);

rewind(min);

fscanf(min,"%d\n",&w);

z=x+y+w;

printf("%d",z);

fclose (min);

}

Пример 3

В файле vag.txt размещены числа 5 7 2 7 -2

#include <stdio.h>

#include <math.h>

void main (void)

{

FILE *min;

int i;int x,y,z,w;

min=fopen("c:\\leyla.txt","r");

z=0;

while (fscanf(min,"%d\n",&x)!=EOF)

if(x>0) z=z-x+2;

printf("%d",z);

fclose (min);

}

Пример 4 Копирование файла

#include <stdio.h>

#include <math.h>

void main (void)

{

FILE *min,*f2;

int x;

min=fopen("c:\\leyla.txt","r");

f2=fopen("c:\\leyla1.txt","w");

while (fscanf(min,"%d\n",&x)!=EOF)

{fprintf(f2,"%d\n",x); }

fclose (min); fclose(f2);

}

В с++ имеются дополнительные средства для работы с файлами

Классы для ввода/вывода файлов

  • ofstream: Stream класс для вывода

  • ifstream: Stream класс для ввода

  • fstream: Stream class для ввода/вывода

  • open (filename, mode); открытие файла

  • myfile.close(); закрытие файла

режимы (mode)

ios::in

Open for input operations.

ios::out

Open for output operations.

Установленный режим

class

Параметры по умолчанию

ofstream

ios::out

ifstream

ios::in

fstream

ios::in | ios::out

Пример 5 создание файла с помощью fstream.h

// basic file operations

#include <iostream.h>

#include <fstream.h>

int main ()

{int x;

ofstream myfile;

myfile.open ("c:\\vag77.txt");

for (x=1;x<=10;x++)

{

myfile << x;

myfile<<endl;

}

myfile.close();

}

Пример 6 копирование файла с помощью fstream.h

#include <iostream.h>

#include <fstream.h>

int main ()

{int x,y;

ofstream myfile1;

ifstream myfile;

myfile.open ("c:\\vag77.txt");

myfile1.open ("c:\\vag88.txt");

for (x=1;x<=10;x++)

{

myfile >> y;

myfile1<<y;

myfile1<<endl;

}

myfile.close();

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]