Namensräume
Varianten
Aktionen

fgetwc, getwc

Von cppreference.com
< c‎ | io
 
 
Datei-Ein-/Ausgabe
Typen und Objekte
        
Funktionen
Datei-Zugriff
(C95)
Unformatierte Ein-/Ausgabe
fgetwcgetwc
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)

Formatierte Eingabe
Direkte Ein-/Ausgabe
Formatierte Ausgabe
Dateipositionierung
Fehlerbehandlung
Operationen auf Dateien
 
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

#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) [bearbeiten]
(C95)
liest einen Weitzeichenstring aus einem Dateistream
(Funktion) [bearbeiten]
schreibt ein Weitzeichen in einen Dateistream
(Funktion) [bearbeiten]
gibt ein Weitzeichen zurück in einen Dateistream
(Funktion) [bearbeiten]
C++ Dokumentation für fgetwc