Funkcja fwrite () w C ++ zapisuje określoną liczbę znaków do danego strumienia wyjściowego.
prototyp fwrite ()
size_t fwrite (const void * buffer, size_t size, size_t count, FILE * stream);
Te fwrite()
zapisy funkcyjne policzyć liczbę obiektów, każdy o rozmiarze size bajtów do danego strumienia wyjściowego.
Jest to podobne do wywołania fputc () size times w celu zapisania każdego obiektu. Zgodnie z liczbą zapisanych znaków wskaźnik pozycji pliku jest zwiększany. Wynikowa wartość wskaźnika pozycji pliku dla strumienia jest nieokreślona, jeśli podczas odczytu pliku wystąpi błąd.
- Jeśli obiekty nie są w prosty sposób kopiowalne, zachowanie jest niezdefiniowane.
- Jeśli rozmiar lub liczba wynosi zero, wywołanie
fwrite
zwróci zero i nie zostanie wykonana żadna inna akcja.
Jest zdefiniowany w pliku nagłówkowym.
fwrite () Parametry
- bufor: wskaźnik do bloku pamięci, którego zawartość jest zapisywana.
- size: rozmiar każdego obiektu w bajtach.
- count: liczba obiektów do odczytania.
- stream: strumień pliku, w którym mają zostać zapisane dane.
fwrite () Zwraca wartość
Że fwrite()
funkcja zwraca liczbę obiektów czytać pomyślnie. Jeśli wystąpi błąd, wartość zwracana może być mniejsza niż liczba.
Przykład 1: Jak działa funkcja fwrite ()
#include #include using namespace std; int main() ( int retVal; FILE *fp; char buffer() = "Writing to a file using fwrite."; fp = fopen("data.txt","w"); retVal = fwrite(buffer,sizeof(buffer),1,fp); cout << "fwrite returned " << retVal; return 0; )
Po uruchomieniu programu zawartość bufora zostanie zapisana do pliku, a wynik będzie wyglądał następująco:
fwrite zwrócił 1
Przykład 2: Jak działa funkcja fwrite (), gdy liczba lub rozmiar wynosi zero
#include #include using namespace std; int main() ( int retVal; FILE *fp; char buffer() = "Writing to a file using fwrite."; fp = fopen("myfile.txt","w"); retVal = fwrite(buffer,sizeof(buffer),0,fp); cout << "When count = 0, fwrite returned " << retVal << endl; retVal = fwrite(buffer,0,1,fp); cout << "When size = 0, fwrite returned " << retVal << endl; return 0; )
Po uruchomieniu programu wynik będzie następujący:
Gdy count = 0, fwrite zwróciło 0 Gdy size = 0, fwrite zwróciło 0