C言語の基礎
前へ 目次へ 次へ 

4 標準ライブラリ

 C言語には、BASICのようなキーボードからデータを入力する命令やデータをディスプレイに出力する命令はない。本来、これらの入出力の処理や文字列の処理をするプログラムを関数として自分で作らなければならない。しかし、それでは余りにも不便であるし、効率も非常に悪くなる。(逆に言えば、どんな処理をする関数も自分で作れるということである)  そこで、よく使われるこれらの処理は関数としてあらかじめ用意されている。これらを標準ライブラリという。

4-1 標準ライブラリの利用

 関数には、値を渡すと結果が戻ってくる。これと同じように標準ライブラリを利用するには、渡してやるデータと呼びだした後に戻ってくるデータが何なのかを知っている必要がある。また、その標準ライブラリが定義されているファイル(*.h : ヘッダファイルという)もわからなければならない。
 例えば、関数printfを利用するためにマニュアルを調べると次のようなことが書かれている。
書式  #include <stdio.h>
    int printf(char *format[, ...]);

    引数 format; 書式指定文字列
    返却値 出力した文字数
 関数printfを利用するには、引数として書式指定文字列をデータとして必ず渡し、出力したい変数もあれば指定する("[ ]"内は省略可能という意味である)。返却値は、呼びだした後に結果として戻ってくるデータである。データの型は関数の前に書いてある。この場合int型である。今までのサンプルプログラムで示したように返却値は利用しなくてもかまわない。

 ANSI規格では、引数の型を別に書かずに関数名のところに書かれている。一般には次のような書式になっている。

書式  #include <定義ファイル(ヘッダファイル)名>
    返却値の型 関数名(引数の型 引数[, 引数の型 引数, ...])

    返却値   返却値の説明
 ANSI規格で定義されている標準ライブラリの内、よく使われているもの、あるいは使うであろうと思われるものをまとめておく。


4-2 入出力関数

(1) printf

#include <stdio.h>
int printf(char *format,...);
 
 書式formatにしたがってディスプレイ(標準出力)にデータを出力する。
 返却値は、出力した文字数。エラーの場合は負数。
 書式は、普通の文字と"%"(パーセント)で始まる書式指定子で構成され、普通の文字はそのまま出力されます。書式指定子は、次のような形で書く。 %[-][m][.p][l]x
- 左端にそろえて出力することを指定する。
m 出力の最小幅を指定する。"0m"で、幅に満たない部分が0で埋められる。
.p 数値を出力する場合は、小数点以下の桁数を指定する。
文字列の場合は、出力する文字の最大数を指定する。
l 倍精度で出力することを指定する。
x 次の内の1つ。
  d int型データを符号付き10進数で表示する。
  i int型データを符号付き10進数で表示する。
  u unsigned int型のデータを符号無し10進数で表示する。
  x unsigned int型のデータを16進数(文字を小文字で出力)で表示する。
  X unsigned int型のデータを16進数(文字を大文字で出力)で表示する。
  o unsigned int型のデータを8進数で表示する。
  f double型のデータを固定小数点表現で表示(1234.567)する。
  e double型のデータを浮動小数点表現で表示(1.23e+03)する。
  E double型のデータを浮動小数点表現で表示(1.23E+03)する。
  g double型のデータをfまたはeの短い方で出力する。
  G double型のデータをfまたはEの短い方で出力する。
  s 文字列表示する。
  c 1文字表示する。


(2) putchar

#include <stdio.h>
int putchar(int c)
 
 1文字cをディスプレイ(標準出力)に出力する。
 返却値は、出力した文字。エラーの場合は、EOF。EOFとは、ファイルの終わりを表す定数(-1)である。

・1文字ずつ表示する。

/* sample25.c */
#include <stdio.h>
int main(void)
{
    putchar(0x41);   /* 0x41 = 'A', putchar('A');でも良い */
    putchar('\n');
}

・1文字入力し、そのまま表示する。

/* sample26.c */
#include <stdio.h>
int main(void)
{
    int ch;
    ch = getchar();
    putchar(ch);
}


(3) puts

#include <stdio.h>
int puts(char *str);
 
 strが示すバッファに格納された文字列をディスプレイ(標準出力)に出力する。文字列の終わりを表す'\0'('\0')は'\n'('\n')に置き換えられて出力される。
 返却値は、0。エラーの場合は、EOF。

・文字列を表示する。

/* sample27.c */
#include <stdio.h>
int main(void)
{
    puts("Hello C World");
}

・1行入力し、そのまま表示する。

/* sample28.c */
#include <stdio.h>
int main(void)
{
    char buff[256];
    gets(buff);
    puts(buff);
}


(4) scanf

#include <stdio.h>
int scanf(char *format,...) ;
 
 書式formatにしたがってキーボード(標準入力)からデータを入力する。
 返却値は、入力したデータの個数。エラーの場合は、EOF。

(5) getchar

#include <stdio.h>
int getchar(void);
 
 キーボード(標準入力)から1文字分のデータを入力する。putcharを参照のこと。
 返却値は、入力された文字。エラーの場合は、EOF。

(6) gets

#include <stdio.h>
char *gets(char *str);
 
 キーボード(標準入力)からの入力データをstrが示すバッファに入力する。
 返却値は、バッファstrの先頭アドレス。putsを参照のこと。


前へ 目次へ 次へ 
Copyright © 2001-2003 Hiroshi Masuda 

 

 

inserted by FC2 system