fgetc
, fgetwc
Akıştan bir karakter okuma.
Sözdizimi
int fgetc(
FILE *stream
);
wint_t fgetwc(
FILE *stream
);
Parametreler
stream
Yapı işaretçisi FILE
.
Dönüş değeri
fgetc
, bir hata veya dosya sonunu belirtmek için okunan int
karakteri veya döndürür EOF
. fgetwc
, okunan karaktere karşılık gelen veya bir hata veya dosya sonu belirtmek için döndüren geniş karakter olarak wint_t
döndürür WEOF
. Her iki işlev için de veya ferror
kullanarak feof
bir hata ile dosya sonu koşulu arasında ayrım yapmak için kullanın. Okuma hatası oluşursa, akışın hata göstergesi ayarlanır. ise stream
NULL
fgetc
ve fgetwc
Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisini çağırın. Yürütmenin devam etmesi için izin verilirse, bu işlevler olarak EINVAL
ayarlanır errno
ve döndürürEOF
.
Açıklamalar
Bu işlevlerin her biri, ile stream
ilişkilendirilmiş dosyanın geçerli konumundan tek bir karakter okur. İşlev daha sonra ilişkili dosya işaretçisini (tanımlandıysa) bir sonraki karaktere işaret etmek için artırır. Akış dosyanın sonundaysa, akışın dosya sonu göstergesi ayarlanır.
fgetc
ile eşdeğerdir getc
, ancak işlev ve makro olarak değil yalnızca işlev olarak uygulanır.
fgetwc
, öğesinin fgetc
geniş karakterli sürümüdür; sırasıyla metin modunda veya ikili modda açıldığında c'yi çok baytlı karakter veya geniş karakter stream
olarak okur.
Soneki olan _nolock
sürümler, diğer iş parçacıkları tarafından müdahaleye karşı korunmamaları dışında aynıdır.
Metin ve ikili modlarda geniş karakterleri ve çok baytlı karakterleri işleme hakkında daha fazla bilgi için bkz . Metin ve ikili modlarda Unicode akışı G/Ç.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Genel metin yordamı eşlemeleri
TCHAR.H yordamı | _UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
---|---|---|---|
_fgettc |
fgetc |
fgetc |
fgetwc |
Gereksinimler
İşlev | Gerekli başlık |
---|---|
fgetc |
<stdio.h> |
fgetwc |
<stdio.h> veya <wchar.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// crt_fgetc.c
// This program uses getc to read the first
// 80 input characters (or until the end of input)
// and place them into a string named buffer.
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
FILE *stream;
char buffer[81];
int i, ch;
// Open file to read line from:
fopen_s( &stream, "crt_fgetc.txt", "r" );
if( stream == NULL )
exit( 0 );
// Read in first 80 characters and place them in "buffer":
ch = fgetc( stream );
for( i=0; (i < 80 ) && ( feof( stream ) == 0 ); i++ )
{
buffer[i] = (char)ch;
ch = fgetc( stream );
}
// Add null to end string
buffer[i] = '\0';
printf( "%s\n", buffer );
fclose( stream );
}
Giriş: crt_fgetc.txt
Line one.
Line two.
Çıktı
Line one.
Line two.