HIR-NET Home 運営者 オンラインソフト 運営者著書 CG HIR-NETリンク集
Tweet このエントリーをはてなブックマークに追加
C言語辞典

getcharゲット・キャラ関数かんすう
getchar function

語源  getゲット characterキャラクター(文字出力)
分類  C/C++標準ライブラリ/関数・マクロ/入出力関数/入力関数/文字入力関数
名称  端末文字入力関数(terminal character input function)
対義  putchar関数
同等  getwchar関数
類似  fputc関数, putc関数
解説  getchar関数は、文字を入力する関数(又は関数形式マクロ)です。実引数に stdin を持つ getc関数(又は getcマクロ)と等価です。

関数原型宣言ヘッダ  <stdio.h>
関数原型宣言例
          実引数なし
             ↓
int getchar(void);
↓
0~UCHAR_MAX:入力文字
EOF         :失敗
関数返却値
①入力した文字を返す。値としては 0~UCHAR_MAX(一般に 0~255)です。
②ストリームがファイルの終わりである場合は、ファイル終了指示子をストリームに設定し EOF(一般に -1)を返します。
③読込エラーが発生した場合はファイル・エラー指示子をストリームに設定し、EOF(一般に -1)を返します。

マクロ定義例  getchar関数が、マクロとして実現されている場合の例です。
#define getchar() getc(stdin)

関数定義例  getchar関数が、関数として実現されている場合の例です。
// getchar.c

#include <stdio.h> // stdin,getc
#undef getchar // マクロ定義取消


int getchar(void) // 端末文字入力関数
//  GET CHARacter
// 0~UCHAR_MAX:入力文字
// EOF         :入力失敗
{
  return getc(stdin);
} // getchar


 プログラム例   

対話的な文字入力
標準入力ストリームから y
// getchar1.c

#include <stdio.h> // stdin,EOF,fflush,getchar,putchar,puts
#include <stdlib.h> // EXIT_SUCCESS
#include <ctype.h> // toupper


int main(void)
{
  while(1)
  {
    int c;
    putchar('>');
    c=getchar();
    fflush(stdin); // フラッシュ
    if(c==EOF)break;
    if(toupper(c)=='Y')puts("はい");
    else puts("いいえ");
  } // while

  return EXIT_SUCCESS;
} // main
実行結果
>Y⏎
はい
>y⏎
はい
>n⏎
いいえ
>^Z⏎   …… [CTRL]+[Z]はEOFコード
             を示す(処理系依存)
>>■





HIR-NET Home 運営者 オンラインソフト 運営者著書 CG HIR-NETリンク集
◆リンクは、ご自由にお張りください。

Copyright © 1988-2017 Hirabayashi Masahide  プライバシーポリシー