feof(указатель файла) признак
Если признак = =0, то конец файла не достигнут.
Если признак ≠ 0, то достигнут конец файла(eof):
while(! feof (fin))
{
...
}
Пример 8.2. Занести в файл числа, сформированные с помощью rand(). Перенести положительные числа в другой файл.
Посчитать сумму чисел во втором файле.
Вывести на печать данные из второго файла.
int main()
{
FILE *pf_1, *pf_2;
int i,s=0, a, kol=8;
pf_1 = fopen("ff1.dat", "w");
for(i=0; i<kol; i++)
{
a=-50+random(100);
printf("%5d",a);
fprintf(pf_1,"\n%d",a);
}
fclose(pf_1);
///////////////////////////////////
pf_1 = fopen("ff1.dat", "r");
pf_2 = fopen("ff2.dat", "w");
while (!feof(pf_1))
{
fscanf(pf_1,"%d",&a);
printf("%5d",a);
if(a>0) fprintf(pf_2,"\n%d",a);
}
fclose(pf_1);
fclose(pf_2);
/////////////////////////////////////
pf_2 = fopen("ff2.dat", "r");
printf("\n ");
while (!feof(pf_2))
{
fscanf(pf_2,"%d",&a);
printf(" %4d ", a);
s=s+a;
}
printf("\n summa= %5d",s);
fclose(pf_2);
return 0;
}
8.7.Проверка наличия ошибки.
Используется функция ferror(указатель файла) признак
Если признак = =0 - нет ошибки
Если признак!= 0 - есть ошибка.
|
|
Пример:
int error;
if((error = ferror(fout))!=0)
printf(“Ошибка при работе с файлом типа %d ”, error);
8.8 Установка указателя файла на заданное смещение
fseek(указатель на файл, offset, origin);
origin SEEK_SET - Поиск с начала файл
SEEK_CUR - Поиск с текущей позиции
SEEK_END - Поиск с конца файла
8.9. Определение положения указателя файла
ftell(указатель на файл);