Język C++
fwrite
[funkcja] Zapisuje określoną ilość danych do wskazanego strumienia.Składnia
#include <cstdio>
size_t fwrite( const void * buffer, size_t size, size_t count, FILE * stream );
Argumenty
Zwracana wartość
Zwraca liczbę poprawnie zapisanych elementów. Zwrócona wartość może być mniejsza niż wartość
count jeżeli w trakcie zapisywania danych wystąpił błąd. W celu ustalenia rodzaju błędu jaki wystąpił podczas zapisywania danych należy użyć funkcji
ferror.
Opis szczegółowy
Funkcja zapisuje do strumienia
count elementów, gdzie rozmiar każdego elementu wynosi
size bajtów.
Dodatkowe informacje
Położenie kursora zapisu danych strumienia jest nieokreślone w przypadku wystąpienia błędu w trakcie zapisu danych. Ponadto nie można określić liczby zapisanych bajtów dla elementu, który nie został w pełni zapisany.
Pamiętaj, że: Liczba faktycznie zapisanych bajtów do strumienia będzie inna dla strumienia otwartego w trybie binarnym oraz w trybie tekstowym, ponieważ znak "\n" zostanie zastąpiony dwoma znakami "\r\n" przy zapisie danych w trybie tekstowym.
|
Przykład
#include <cstdio>
#include <string>
bool zapiszDane( const char * _nazwaPliku, const char * _tekst )
{
FILE * plik = fopen( _nazwaPliku, "w" );
if( !plik )
return false;
size_t zapisanychElementow = fwrite( _tekst, sizeof( char ), strlen( _tekst ), plik );
printf( "Dlugosc tekstu = %d\n", strlen( _tekst ) );
printf( "Zapisanych elementow = %d\n", zapisanychElementow );
fclose( plik );
return true;
}
bool odczytajDane( const char * _nazwaPliku )
{
FILE * plik = fopen( _nazwaPliku, "rb" );
if( !plik )
return false;
const int ROZMIAR_BUFORA = 1024;
char bufor[ ROZMIAR_BUFORA ];
size_t odczytanychElementow = fread( bufor, sizeof( char ), ROZMIAR_BUFORA, plik );
printf( "Odczytanych elementow = %d\n", odczytanychElementow );
fclose( plik );
return true;
}
int main()
{
const char * tekst = "Dokumentacja serwisu\ncpp0x.pl\n";
const char * nazwaPliku = "plik_testowy.txt";
if( !zapiszDane( nazwaPliku, tekst ) )
printf( "Nie udalo sie zapisac danych.\n" );
if( !odczytajDane( nazwaPliku ) )
printf( "Nie udalo sie odczytac danych.\n" );
return 0;
}
Standardowe wyjście programu:
Dlugosc tekstu = 30
Zapisanych elementow = 30
Odczytanych elementow = 32
Zagadnienia powiązane
fread | Wczytuje określoną ilość danych ze wskazanego strumienia. (funkcja) |
---|
ferror | Sprawdza czy wystąpił błąd w strumieniu. (funkcja) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.