Читайте также: |
|
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 | | | Встроенные функции. |