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

Функции форматного ввода и вывода данных

Читайте также:
  1. II. 12-24. Причина страданий преданных
  2. II. Ввод и редактирование данных
  3. II. Основные задачи и функции
  4. II. Признаки, ресурсы и функции власти.
  5. II. Функции
  6. II.Синдром дисфункции синусового узла (СССУ) I 49.5
  7. III. Органы, объединяющие эндокринные и неэндокринные функции

fprintf(name,“<управляющая строка>”[, <список аргументов>])

fscanf (name,“<управляющая строка>”[, <список аргументов>])

Управляющая строка содержит обычные символы, которые выводятся на экран, спецификации преобразования и управляющие символы константы. Каждая спецификация начинается с символа % и заканчивается символом преобразования. Между ними могут записываться “ - ”,”. ”,” l ”, указываться размер поля или максимальное число символов или цифр для вывода.

Символы преобразования:

d - аргумент преобразуется в десятичное целое со знаком

u - аргумент преобразуется в десятичное целое без знака

o - аргумент преобразуется в восьмеричное целое без знака

x - аргумент преобразуется в шестнадцатеричное целое без знака

c - значением аргумента является одиночный символ

s - значением аргумента является строка символов

g - значением аргумента является вещественное: либо f, либо e

e - значением аргумента является вещественное типа float или double в форме с плавающей точкой

f - значением аргумента является вещественное типа float или double в форме с фиксированной точкой

p - значением аргумента является указатель

Для произвольного перемещения по файлу и прямого доступа к его компонентам используется функция

fseek(name, long offset, int point),

которая устанавливает указатель текущей позиции в файле на offset байт относительно точки отсчета, определенной значением point (0- от начала файла, 1- от текущей позиции, 2- от конца файла). Функция возвращает значение 0, если операция выполнена правильно, и –1, если есть ошибка.

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

Пример записи в текстовый файл:

(описание структуры man и функций vvod,vivod приведены в разделе «Структуры и Объединения»)

 

 

int writefile(man* x,int n)

{ FILE* fp; int i; char namefile[11];

cout<<" Введите имя файла"<<’n’;

cin>>namefile;

fp=fopen(namefile,"w");

if (fp==0) {cout<<"Файл не открыт!"<<’\n’; getch(); return -1;}

else

for(i=0;i<=n-1;i++)

{ fprintf(fp,"%s\n", (x+i)->fam); fprintf(fp,"%s\n",(x+i)->name);

fprintf(fp,"%d\n",(x+i)->vozr); fprintf(fp,"%d\n",(x+i)->rost);

fprintf(fp,"%d\n",(x+i)->wes);}

fclose(fp);return 1;}

 

Вызов данной функции:

writefile(a,i), где a=new man[i].

 

Пример чтения из текстового файла:

(описание структуры man и функций vvod,vivod приведены в разделе «Структуры и Объединения»)

 

int readfile(man* x,int n)

{ FILE* fp; int i; char namefile[11];

cout<<"Кол-во студентов: "<<n<<'\n';

cout<<"Введите имя файла"<<’\n’;

cin>>namefile;

fp=fopen(namefile,"r");

if (fp==0) { cout<<"Файл не открыт!"<<’\n’; getch(); return -1; }

else

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

{ fscanf(fp,"%s",(x+i)->fam); fscanf(fp,"%s",(x+i)->name);

fscanf(fp,"%d",&(x+i)->vozr); fscanf(fp,"%d",&(x+i)->rost);

fscanf(fp,"%d",&(x+i)->wes);}} fclose(fp); return 1;}

 

Вызов данной функции:

readfile(a,i), где a=new man[i].

Пример записи в бинарный файл:

int writef(man* x,int n)

{FILE* fp;int i;

char namefile[11];

cout<<"Введите имя файла"<<’\n’;

cin>>namefile;

fp=fopen(namefile,"wb");

if (fp==0) {cout<<"Файл не открыт!"<<’\n’; getch(); return -1;}

else

for(i=0;i<=n-1;i++)

{ fwrite((x+i),sizeof(man),1,fp); }

fclose(fp);return 1;}

 

Вызов данной функции:

writef(a,i), где a=new man[i].

 

Пример чтения из бинарного файла:

int readfilebin(man* x,int n,char* namefile)

{FILE* fp;int i;

fp=fopen(namefile,"rb");

if (fp==0){cout<<"Файл не открыт!"<<’\n’; getch(); return -1; }

else

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

{ fread((x+i),sizeof(man),1,fp); }

fclose(fp); return 1; }

 

Вызов данной функции:

readfilebin(a,i,namefile), где a=new man[i].

 

Определение длины файла:

unsigned long filelen(char* namefile)

{FILE* fp;unsigned long DL;

fp=fopen(namefile,"rb");

if (fp==0) { cout<<"Файл не открыт!"<<’\n’; getch(); return -1;}

else { fseek(fp,0,SEEK_END); DL=ftell(fp); }

fclose(fp); return DL; }

 

Вызов данной функции:

dlfile= filelen(namefile);

 


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


Читайте в этой же книге: Идентификаторы | Математические функции | Операторы управления | Шаблоны функций |
<== предыдущая страница | следующая страница ==>
Struct B| Встроенные функции.

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