FILE *fp;
float balance[100];
/* Открываем файл для записи. */
if((fp=fopen("balance", "w"))==NULL) {
printf("He удается открыть файл.\n");
return 1;
}
for(i=0; i<100; i++) balance[i] = (float) i;
/* Одним "махом" сохраняем весь массив balance. */
fwrite(balance, sizeof balance, 1, fp);
fclose(fp);
/* Обнуляем массив. */
for(i=0; i<100; i++) balance[i] = 0.0;
/* Открываем файл для чтения. */
if((fp=fopen("balance", "r"))==NULL) {
printf("He удается открыть файл.\n");
return 1;
}
/* Одним "махом" считываем весь массив balance. */
fread(balance, sizeof balance, 1, fp);
/* Отображаем содержимое массива. */
for(i=0; i<100; i++) printf("%f ", balance[i]);
fclose(fp);
return 0;
}
Использовать функции
С-система ввода-вывода позволяет выполнять операции считывания и записи данных с произвольным доступом. Для этого служит функция
int fseek(FILE *fp, long numbytes, int origin);
Здесь параметр
Следовательно, чтобы переместить индикатор позиции в файле на
Нулевое значение результата функции свидетельствует об успешном выполнении функции
int func1()
{
FILE *fp;
if((fp=fopen("test", "rb")) == NULL) {
printf("He удается открыть файл.\n");
exit (1);
}
fseek(fp, 234L, SEEK_SET);
return getc(fp); /* Считывание одного символа, расположенного на 234-й позиции. */
}
Помимо рассмотренных выше основных функций ввода-вывода, С-система ввода-вывода включает функции
int fprintf(FILE * fp, const char *fmt_string, ...);
int fscanf(FILE * fp, const char *fmt_string, ...);
Здесь параметр
Функция
int remove(const char *filename);
Она возвращает нуль при успешном удалении файла и ненулевое значение в противном случае.
Приложение Б: Использование устаревшего С++-компилятора