Читать «C++: базовый курс» онлайн - страница 344
Herbert Schildt
size_t fread(void *buffer, size_t num_bytes, size_t count, FILE *fp);
size_t fwrite(const void *buffer, size_t num_bytes, size_t count, FILE *fp);
При вызове функции
При вызове функции
Если при вызове функций
/* Запись в дисковый файл значения с плавающей точкой.
*/
#include <stdio.h>
int main()
{
FILE *fp;
float f = 12.23F;
if((fp=fopen("test", "wb"))==NULL) {
printf("He удается открыть файл.\n");
return 1;
}
fwrite(&f, sizeof(float), 1, fp);
fclose(fp);
return 0;
}
Как показано в этой программе, роль буфера может выполнять (и при том довольно часто) одна переменная.
С помощью функций
#include <stdio.h>
int main()
{
register int i;
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;
}
Использовать функции