Defined in header <cwchar> | ||
---|---|---|
wchar_t* fgetws( wchar_t* str, int count, std::FILE* stream ); |
Reads at most count - 1
wide characters from the given file stream and stores them in str
. The produced wide string is always null-terminated. Parsing stops if end-of-file occurs or a newline wide character is found, in which case str
will contain that wide newline character.
str | - | wide string to read the characters to |
count | - | the length of str |
stream | - | file stream to read the data from |
str
on success, a null pointer on an error.
#include <array> #include <clocale> #include <cstdio> #include <cstdlib> #include <cwchar> #include <iostream> int main() { // Create temp file that contains wide characters std::setlocale(LC_ALL, "en_US.utf8"); std::FILE* tmpf = std::tmpfile(); for (const wchar_t* text :{ L"Tétraèdre" L"\n", L"Cube" L"\n", L"Octaèdre" L"\n", L"Icosaèdre" L"\n", L"Dodécaèdre" L"\n", }) if (int rc = std::fputws(text, tmpf); rc == EOF) { std::perror("fputws()"); // POSIX requires that errno is set return EXIT_FAILURE; } std::rewind(tmpf); std::array<wchar_t, 16> buf; while (std::fgetws(buf.data(), buf.size(), tmpf) != nullptr) std::wcout << L'"' << buf.data() << L'"' << L'\n'; return EXIT_SUCCESS; }
Possible output:
"Tétraèdre " "Cube " "Octaèdre " "Icosaèdre " "Dodécaèdre "
reads formatted wide character input from stdin , a file stream or a buffer (function) |
|
gets a wide character from a file stream (function) |
|
writes a wide string to a file stream (function) |
|
C documentation for fgetws |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/c/fgetws