std::fgetws
From cppreference.com
| 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.
Parameters
| str | - | wide string to read the characters to |
| count | - | the length of str
|
| stream | - | file stream to read the data from |
Return value
str on success, a null pointer on an error
Example
Run this code
#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 "
See also
| 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) |