getc、getwcgetc, getwc

ストリームから単一の文字を読み取ります。Read a character from a stream.


int getc(
   FILE *stream
wint_t getwc(
   FILE *stream


入力ストリーム。Input stream.

戻り値Return Value

読み取られた文字を返します。Returns the character read. 読み取りエラーまたはファイルの終端状態を示すには、 getcEOFを返し、 getwcWEOFを返します。To indicate a read error or end-of-file condition, getc returns EOF, and getwc returns WEOF. Getcの場合は、 ferrorまたはfeofを使用して、エラーまたはファイルの終端を確認します。For getc, use ferror or feof to check for an error or for end of file. StreamNULLの場合、 getcおよびgetwcは、「パラメーターの検証」で説明されているように、無効なパラメーターハンドラーを呼び出します。If stream is NULL, getc and getwc invoke the invalid parameter handler, as described in Parameter Validation. 実行の継続が許可された場合、これらの関数はEOF (またはgetwcWEOF ) を返し、 errnoEINVALに設定します。If execution is allowed to continue, these functions return EOF (or WEOF for getwc) and set errno to EINVAL.

エラー コードの詳細については、「_doserrno、errno、_sys_errlist、_sys_nerr」をご覧ください。See _doserrno, errno, _sys_errlist, and _sys_nerr for more information on these, and other, error codes.


各ルーチンはファイルの現在の位置から 1 文字読み取り、関連付けられたファイル ポインター (定義されている場合) をインクリメントして次の文字を指します。Each routine reads a single character from a file at the current position and increments the associated file pointer (if defined) to point to the next character. ファイルはストリームに関連付けられています。The file is associated with stream.

これらの関数は呼び出し元スレッドをロックするため、スレッド セーフです。These functions lock the calling thread and are therefore thread-safe. ロックしないバージョンについては、「_getc_nolock、_getwc_nolock」をご覧ください。For a non-locking version, see _getc_nolock, _getwc_nolock.

ルーチン固有の解説は、次のとおりです。Routine-specific remarks follow.

ルーチンRoutine RemarksRemarks
getcgetc Fgetcと同じですが、関数およびマクロとして実装されています。Same as fgetc, but implemented as a function and as a macro.
getwcgetwc Getcのワイド文字バージョン。Wide-character version of getc. ストリームがテキストモードとバイナリモードのどちらで開かれているかに応じて、マルチバイト文字またはワイド文字を読み取ります。Reads a multibyte character or a wide character according to whether stream is opened in text mode or binary mode.

汎用テキスト ルーチンのマップGeneric-Text Routine Mappings

TCHAR.H のルーチンTCHAR.H routine _UNICODE および _MBCS が未定義の場合_UNICODE & _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_gettc_gettc getcgetc getcgetc getwcgetwc


ルーチンによって返される値Routine 必須ヘッダーRequired header
getcgetc <stdio.h><stdio.h>
getwcgetwc <stdio.h> または <wchar.h><stdio.h> or <wchar.h>

互換性の詳細については、「 互換性」を参照してください。For additional compatibility information, see Compatibility.


// crt_getc.c
// Use getc to read a line from a file.

#include <stdio.h>

int main()
    char buffer[81];
    int i, ch;
    FILE* fp;

    // Read a single line from the file "crt_getc.txt".

    fopen_s(&fp, "crt_getc.txt", "r");
    if (!fp)
       printf("Failed to open file crt_getc.txt.\n");

    for (i = 0; (i < 80) && ((ch = getc(fp)) != EOF)
                         && (ch != '\n'); i++)
        buffer[i] = (char) ch;

    // Terminate string with a null character
    buffer[i] = '\0';
    printf( "Input was: %s\n", buffer);


入力: crt_getc.txtInput: crt_getc.txt

Line one.
Line two.


Input was: Line one.

関連項目See also

ストリーム入出力Stream I/O
fgetc、fgetwcfgetc, fgetwc
_getch、_getwch_getch, _getwch
putc、putwcputc, putwc
ungetc、ungetwcungetc, ungetwc