fgetwc, getwc
Von cppreference.com
| Definiert in Header <wchar.h> |
||
| wint_t fgetwc( FILE *stream ); |
(seit C95) | |
| wint_t getwc( FILE *stream ); |
(seit C95) | |
Liest das nächste Wide-Zeichen aus dem gegebenen Eingabestream. getwc() kann als Makro implementiert sein und stream mehr als einmal auswerten.
Inhalt |
[bearbeiten] Parameter
| stream | - | Der Stream, aus dem das Wide-Zeichen gelesen werden soll |
[bearbeiten] Rückgabewert
Das nächste Wide-Zeichen aus dem Stream oder WEOF bei einem Fehler.
Wenn der Fehler durch eine End-of-File-Bedingung verursacht wurde, wird zusätzlich der eof-Indikator (siehe feof()) für stream gesetzt. Wenn der Fehler durch einen anderen Fehler verursacht wurde, wird der error-Indikator (siehe ferror()) für stream gesetzt.
Wenn ein Kodierungsfehler aufgetreten ist, wird zusätzlich errno auf EILSEQ gesetzt.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <stdio.h> #include <stdlib.h> #include <wchar.h> #include <errno.h> #include <locale.h> int main(void) { setlocale(LC_ALL, "en_US.utf8"); FILE *fp = fopen("fgetwc.dat", "w"); if(!fp) { perror("Can't open file for writing"); return EXIT_FAILURE; } fputs("кошка\n", fp); fclose(fp); fp = fopen("fgetwc.dat", "r"); if(!fp) { perror("Can't open file for reading"); return EXIT_FAILURE; } wint_t wc; errno = 0; while ((wc = fgetwc(fp)) != WEOF) putwchar(wc); if (ferror(fp)) { if (errno == EILSEQ) puts("Character encoding error while reading."); else puts("I/O error when reading"); } else if (feof(fp)) puts("End of file reached successfully"); fclose(fp); }
Ausgabe
кошка
[bearbeiten] Referenzen
- C17-Standard (ISO/IEC 9899:2018)
- 7.29.3.1 Die Funktion fgetwc (S. 307-308)
- 7.29.3.6 Die Funktion getwc (S. 309)
- C11-Standard (ISO/IEC 9899:2011)
- 7.29.3.1 Die Funktion fgetwc (S. 421-422)
- 7.29.3.6 Die Funktion getwc (S. 424)
- C99-Standard (ISO/IEC 9899:1999)
- 7.24.3.1 Die Funktion fgetwc (S. 367)
- 7.24.3.6 Die Funktion getwc (S. 369)
[bearbeiten] Siehe auch
| liest ein Zeichen aus einem Dateistream (Funktion) | |
| (C95) |
liest einen Weitzeichenstring aus einem Dateistream (Funktion) |
| (C95) |
schreibt ein Weitzeichen in einen Dateistream (Funktion) |
| (C95) |
gibt ein Weitzeichen zurück in einen Dateistream (Funktion) |
| C++ Dokumentation für fgetwc
| |