C/fwrite
< C
Deklaracja
edytuj- size_t fwrite(const void *ptr, size_t size, size_t nitems, FILE *stream);
Plik nagłówkowy
edytuj
Argumenty
edytuj- ptr : adres danych , które mają być zapisane. Np. wskaźnik do pierwszego obiektu w tablicy, który ma zostać zapisany
- size : rozmiar elementu tablicy
- nitems : liczba elementów do zapisu
- stream : plik, na którym wykonywana jest operacja
ptr
edytujDeklaracja
void *ptr
informuje że argument nie ma z góry określonego typu. Jest to uniwersalny typ wskaźnikowy
Opis
edytuj- Funkcja fwrite kopiuje nitems elementów z podanej tablicy do pliku. Kopiowanie kończy się w przypadku wystąpienia błędu lub po skopiowaniu podanej liczby elementów. Wskaźnik pliku jest przesuwany, tak by wskazywał pierwszy element po ostatnim zapisanym.
Wartość zwracana
edytuj- Liczba faktycznie zapisanych elementów.
Przykład
edytuj
FILE * fp = fopen("worley.pnm","wb"); unsigned char b = 200; fwrite(&b,1,1,fp);
lub
FILE * fp = fopen("worley.pnm","wb"); unsigned char b[1]; b[0] = 200; fwrite(b,1,1,fp);
//https://en.cppreference.com/w/c/io/fwrite
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
enum { SIZE = 5 };
int main(void)
{
double a[SIZE] = {1, 2, 3, 4, 5};
FILE *f1 = fopen("file.bin", "wb");
assert(f1);
size_t r1 = fwrite(a, sizeof a[0], SIZE, f1);
printf("wrote %zu elements out of %d requested\n", r1, SIZE);
fclose(f1);
double b[SIZE];
FILE *f2 = fopen("file.bin", "rb");
size_t r2 = fread(b, sizeof b[0], SIZE, f2);
fclose(f2);
printf("read back: ");
for(size_t i = 0; i < r2; i++)
printf("%f ", b[i]);
}
Zobacz też
edytuj- Alfabetyczny spis funkcji biblioteki standardowej ANSI C (tzw. libc) w wersji C89.
- fscanf (czytanie pojedynczych zmiennych)
- fread (analogiczna operacja do czytania z pliku)
- fopen (otwarcie pliku)
- fclose (zamknięcie pliku)