stdin から文字を読み出します。
int _fgetchar( void );
wint_t _fgetwchar( void );
戻り値
_fgetchar は、読み出した文字を int 型として返します。エラーまたはファイルの終端の場合は、EOF を返します。 **_**fgetwchar は、読み出した文字に対応するワイド文字を wint_t 型として返します。エラーまたはファイルの終端の場合は、WEOF を返します。 この 2 つの関数でエラーとファイルの終端を区別するには、feof または ferror を使用します。
解説
これらの関数は、stdin から 1 文字を読み出します。 次に、関連付けられているファイル ポインターがあれば、ポインターをインクリメントし、次の文字を指します。 ストリームがファイルの終端に達すると、ストリームの EOF(EOF: end-of-file) インジケーターが設定されます。
_fgetchar 関数は、fgetc( stdin ) と同じです。 getchar とも同じですが、関数とマクロの両方ではなく、関数としてのみ実装されています。 _fgetwchar 関数は、_fgetchar 関数のワイド文字バージョンです。
これらの関数は、ANSI 標準互換ではありません。
汎用テキスト ルーチンのマップ
Tchar.h のルーチン |
_UNICODE および _MBCS が未定義の場合 |
_MBCS が定義されている場合 |
_UNICODE が定義されている場合 |
---|---|---|---|
_fgettchar |
_fgetchar |
_fgetchar |
_fgetwchar |
必要条件
機能 |
必須ヘッダー |
---|---|
_fgetchar |
<stdio.h> |
_fgetwchar |
<stdio.h> または <wchar.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
// crt_fgetchar.c
// This program uses _fgetchar 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 )
{
char buffer[81];
int i, ch;
// Read in first 80 characters and place them in "buffer":
ch = _fgetchar();
for( i=0; (i < 80 ) && ( feof( stdin ) == 0 ); i++ )
{
buffer[i] = (char)ch;
ch = _fgetchar();
}
// Add null to end string
buffer[i] = '\0';
printf( "%s\n", buffer );
}