std:: fwide
| I/O manipulators | ||||
| Print functions (C++23) | ||||
| C-style I/O | ||||
| Buffers | ||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(C++20)
|
||||
| Streams | ||||
| Abstractions | ||||
| File I/O | ||||
| String I/O | ||||
| Array I/O | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
| Synchronized Output | ||||
|
(C++20)
|
||||
| Types | ||||
| Error category interface | ||||
|
(C++11)
|
||||
|
(C++11)
|
| Types and objects | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definiert in Header
<cwchar>
|
||
|
int
fwide
(
std::
FILE
*
stream,
int
mode
)
;
|
||
Wenn mode > 0 , wird versucht, den stream breitorientiert zu machen. Wenn mode < 0 , wird versucht, den stream byteorientiert zu machen. Wenn mode == 0 , wird nur die aktuelle Ausrichtung des Streams abgefragt.
Wenn die Ausrichtung des Streams bereits festgelegt wurde (durch Ausgabevorgänge oder durch einen früheren Aufruf von fwide), führt diese Funktion keine Aktion aus.
Inhaltsverzeichnis |
Parameter
| stream | - | Zeiger auf den C-I/O-Stream, der geändert oder abgefragt werden soll |
| mode | - | Ganzzahlwert größer als Null, um den Stream breit zu setzen, kleiner als Null, um den Stream schmal zu setzen, oder Null, um nur abzufragen |
Rückgabewert
Eine ganze Zahl größer als null, wenn der Stream nach diesem Aufruf breitorientiert ist, kleiner als null, wenn der Stream nach diesem Aufruf byteorientiert ist, und null, wenn der Stream keine Orientierung hat.
Beispiel
Der folgende Code setzt und setzt die Stream-Orientierung zurück.
#include <cstdio> #include <cstdlib> #include <cwchar> #include <iostream> void show_orientation(int n) { n < 0 ? std::wcout << "\tnarrow orientation\n" : n > 0 ? std::wcout << "\twide orientation\n" : std::wcout << "\tno orientation\n"; } void try_read(FILE* fp) { if (const int c = std::fgetc(fp); c == EOF) std::wcout << "\tnarrow character read failed\n"; else std::wcout << "\tnarrow character read '" << static_cast<char>(c) << "'\n"; if (const wint_t wc = std::fgetwc(fp); wc == WEOF) std::wcout << "\twide character read failed\n"; else std::wcout << "\twide character read '" << static_cast<wchar_t>(wc) << "'\n"; } int main() { enum fwide_orientation : int { narrow = -1, query, wide }; FILE* fp = std::fopen("main.cpp", "r"); if (!fp) { std::wcerr << "fopen() failed\n"; return EXIT_FAILURE; } std::wcout << "1) A newly opened stream has no orientation.\n"; show_orientation(std::fwide(fp, fwide_orientation::query)); std::wcout << "2) Establish byte orientation.\n"; show_orientation(std::fwide(fp, fwide_orientation::narrow)); try_read(fp); std::wcout << "3) Only freopen() can reset stream orientation.\n"; if (std::freopen("main.cpp", "r", fp) == NULL) { std::wcerr << "freopen() failed\n"; return EXIT_FAILURE; } std::wcout << "4) A reopened stream has no orientation.\n"; show_orientation(std::fwide(fp, fwide_orientation::query)); std::wcout << "5) Establish wide orientation.\n"; show_orientation(std::fwide(fp, fwide_orientation::wide)); try_read(fp); std::fclose(fp); }
Mögliche Ausgabe:
1) Ein neu geöffneter Stream hat keine Orientierung.
keine Orientierung
2) Byte-Orientierung einrichten.
narrow orientation
narrow character read '#'
wide character read failed
3) Nur freopen() kann die Stream-Orientierung zurücksetzen.
4) Ein erneut geöffneter Stream hat keine Orientierung.
keine Orientierung
5) Wide-Orientierung einrichten.
wide orientation
narrow character read failed
wide character read '#'
Siehe auch
|
öffnet eine Datei
(Funktion) |
|
|
C-Dokumentation
für
fwide
|
|