C/fwrite
< C
DeklaracjaEdytuj
- size_t fwrite(const void *ptr, size_t size, size_t nitems, FILE *stream);
Plik nagłówkowyEdytuj
ArgumentyEdytuj
- 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
ptrEdytuj
Deklaracja
void *ptr
informuje że argument nie ma z góry określonego typu. Jest to uniwersalny typ wskaźnikowy
OpisEdytuj
- 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ść zwracanaEdytuj
- Liczba faktycznie zapisanych elementów.
PrzykładEdytuj
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)