rewind(указатель на файл)
Пример 8.3.В файле хранится последовательность чисел. Найти максимальное число и поменять его с первым. Задание выполнить в следующей последовательности.
ü Занести данных в файл
ü Прочесть данные из файла и вывести на экран
ü Выполнить поиск максимального элемента
ü Поменять максимальный элемент с первым
int main()
{
int poz,pozm,i,nk, kol=5;
int a,max=-1000,b;
FILE *pf_1;
///Занесение данных в файл
pf_1 = fopen("ff1.dat", "w");
for(i=0; i<kol; i++)
{
a=random(150);
fprintf(pf_1,"\n%4d",a);
}
fclose(pf_1);
getch();
//Чтение данных из файла и вывод на экран
|
while(!feof(pf_1))
{
fscanf(pf_1,"%d",&a);
printf("\n %5d ",a);
}
fclose(pf_1);
///Поиск максимального элемента
pf_1 = fopen("ff1.dat", "r");
i=0;
while(!feof(pf_1))
{
poz=ftell(pf_1);
fscanf(pf_1,"%d",&a);
if (a>=max) { max=a; nk=i; pozm=poz; }
i++;
}
printf("\n max=%5d nk= %5d pozm =%5d\n",max,nk,pozm);
fclose(pf_1);
|
//Меняются максимальный элемен с первым
pf_1 = fopen("ff1.dat", "r+");
rewind(pf_1);
fscanf(pf_1,"%d",&b);
fseek (pf_1, pozm, SEEK_SET);
fscanf(pf_1,"%4d",&a);
fseek (pf_1, pozm, SEEK_SET);
fprintf(pf_1,"\n%4d",b);
fseek (pf_1, 0, SEEK_SET);
fprintf(pf_1,"\n%4d",a);
fclose(pf_1);
//Чтение преобразованных данных из файла и вывод на экран
pf_1 = fopen("ff1.dat", "r");
while(!feof(pf_1))
|
fscanf(pf_1,"%4d",&a);
printf("\n %5d ",a);
}
fclose(pf_1);
return 0;
}