Funkcja fwscanf () w C ++ odczytuje szeroki znak ze strumienia pliku.
Funkcja fwscanf () jest zdefiniowana w pliku nagłówkowym.
Prototyp fwscanf ()
int fwscanf (PLIK * strumień, format const wchar_t *,…);
Funkcja fwscanf () odczytuje dane ze strumienia strumienia plików i zapisuje wartości w odpowiednich zmiennych.
Parametry fwscanf ()
- stream: strumień pliku wejściowego, z którego mają być odczytywane dane.
- format: wskaźnik do ciągu znaków zakończonych znakiem null, który określa sposób odczytywania danych wejściowych. Składa się ze specyfikatorów formatu zaczynających się od%.
Ciąg formatu składa się z następujących części:- Znaki inne niż białe znaki, z wyjątkiem%, z których każdy zużywa jeden identyczny znak ze strumienia wejściowego. Może to spowodować niepowodzenie funkcji, jeśli następny znak w strumieniu nie jest równy.
- Białe znaki: wszystkie następujące po sobie białe znaki są traktowane jako pojedyncze białe znaki. Ponadto „ n”, „ t” i „” są uważane za takie same.
- Specyfikacja konwersji: ma następujący format:
- Początkowy znak%, który określa początek
- Opcjonalny *, nazywany znakiem tłumiącym przypisanie. Jeśli ten znak jest obecny, fwscanf () nie przypisuje wyniku do żadnego odbieranego argumentu.
- Opcjonalna dodatnia liczba całkowita, która określa maksymalną szerokość pola. Określa maksymalną liczbę znaków, które fwscanf () może wykorzystać podczas wykonywania konwersji określonej w bieżącej specyfikacji konwersji.
- Opcjonalny modyfikator długości określający rozmiar otrzymywanego argumentu.
- Specyfikator formatu konwersji.
Specyfikator formatu Opis % Dopasowuje dosłowne% do Dopasowuje pojedynczy znak lub wiele znaków. Jeśli zdefiniowano szerokość, dopasowuje dokładnie znaki szerokości. s Dopasowuje kolejne znaki niebędące białymi znakami. Jeśli zdefiniowano szerokość, dopasowuje dokładnie znaki szerokości lub do znalezienia pierwszej spacji. (zestaw) Dopasowuje niepusty ciąg znaków z podanego zestawu znaków. Jeśli występuje na początku zbioru, to dopasowywane są wszystkie znaki spoza zbioru. re Dopasowuje dziesiętną liczbę całkowitą. ja Dopasowuje liczbę całkowitą. o Dopasowuje ósemkową liczbę całkowitą bez znaku. X lub x Dopasowuje szesnastkową liczbę całkowitą bez znaku. u Dopasowuje dziesiętną liczbę całkowitą bez znaku. A lub a, E lub e, F lub f, G lub g Dopasowuje liczbę zmiennoprzecinkową. n Zwraca liczbę odczytanych dotychczas znaków. p Dopasowuje sekwencję znaków zdefiniowaną przez implementację definiującą wskaźnik.
Zatem ogólny format specyfikatora formatu to:Specyfikator% (*) (szerokość) (długość)
- …: Inne dodatkowe argumenty za otrzymywaniem danych. Występują w sekwencji zgodnie ze specyfikatorem formatu.
fwscanf () Wartość zwracana
- Funkcja fwscanf () zwraca liczbę pomyślnie przypisanych otrzymanych argumentów.
- Jeśli błąd wystąpi przed przypisaniem pierwszego argumentu odbioru, zwracany jest EOF.
Przykład: Jak działa funkcja fwscanf ()?
#include #include #include #include int main() ( FILE *fp = fopen("example.txt","w+"); wchar_t str(10), ch; setlocale(LC_ALL, "en_US.UTF-8"); fwprintf(fp, L"%ls %lc", L"Summation", L'u2211'); fwprintf(fp, L"%ls %lc", L"Integral", L'u222b'); rewind(fp); while((fwscanf(fp, L"%ls %lc", str, &ch))!=EOF) ( wprintf(L"%lc is %ls", ch, str); ) fclose(fp); return 0; )
Po uruchomieniu programu możliwe wyjście to:
∑ to sumowanie ∫ jest całkowe