ライブラリは関数たちで、既にコンパイルしてあります。
それをコンパイル時にリンクすることで、プログラムがその関数を使うことができます。
ライブラリに有る関数を使うときにその名前が今まで一度も宣言されていないとコンパイラはびっくりしてしまいます。
ですから、ライブラリに書いてある関数の宣言をまとめて書いておくことが必要です。
ライブラリに書いてある関数の宣言をまとめて書いて書いてあるヘッダファイル〜.hを
ソースファイルに差し込む(includeを使う)ことでこれが可能となります。
標準入出力関数はstdio.hというヘッダ(たいていファイル)で宣言されている関数たちである。 このstdio.hをincludeさえすればライブラリー(関数の定義)とのリンクも行ってくれるので、 コンピュータへの命令のようなものだと考えても差し支えなくなるようにできている。
ごく一部を書くと、
/*ファイル入出力*/ FILE *fopen(const char *filename, const char *mode); int fclose(FILE *stream); int fflush(FILE *stream); int fprintf(FILE *stream, const char *format, ...); int fscanf(FILE *stream, const char *format, ...); size_t fread(void *buffer, size_t size, size_t n,FILE *stream); size_t fwrite(const void *buffer, size_t size, size_t n,FILE *stream); /*画面入出力*/ int printf(const char *format, ...); int scanf(const char *format, ...); /*文字列入出力*/ int sprintf(char *buffer, const char *format, ...); int sscanf(char *buffer,const char *format, ...);こんなものにしないと…
さて、画面の入出力から
printf("hello, world\n");これはconst char *型の値"hello, world\n"を画面に出します。 実際には画面が\nという1文字を受け取ると改行の命令を受け取ったとみなされますので画面に
hello, worldと表示されます。もし
hello, world\nと表示させたければ
printf("hello, world\\n");と書きましょう。\\は\という文字をあらわして、\n等で特殊な文字をあらわします。 つぎに
int i=1234; int j=5678; printf("i equals %d\nj equals %d\n",i,j);とやると、画面に
i equals 1234 j equals 5678と表示されます。 「%何とか」のところを後ろにくっつけた引数によって順番に置き換えるというのが基本的な構造です。
%d | int | 10進整数(符号付) |
%i | int | %dとおなじ |
%o | unsigned int | 8進数(符号なし) |
%x | unsigned int | 16進数(符号なし) |
%u | unsigned int | 10進数(符号なし) |
%c | int | 一文字 |
%s | char * | 文字列 |
%f | double | 浮動小数点 |
%e | double | 浮動小数点 |
%g | double | 浮動小数点%e、%fのうち短いほう |
%p | void * | ぽいんた |
%n | int * | ここまで表示した文字数を変数のほうに代入する(普通とは逆方向) |
%% | %自身を表したいときはこうする。 | |
%X | unsigned int | %xとおなじ。大文字で表示される |
%E | double | %eとおなじ。大文字で表示される。 |
%G | double | %gとおなじ。大文字で表示される。 |
scanfはこう使います
char hoge[256]; int i; scanf("name:%s hoge:%d\n",hoge,i);とすると、
name:foo hoge:123という入力がはいるのを待ちます。これを入力するとhoge[]には"foo"が入り、iには123が入ります。 scanfでは
%d | int * | 10進整数(符号付) |
%i | int * | %dとおなじ |
%o | unsigned int* | 8進数(符号なし) |
%x | unsigned int* | 16進数(符号なし) |
%u | unsigned int* | 10進数(符号なし) |
%c | int * | 一文字 |
%s | char * | 文字列 |
%f | float * | 浮動小数点 |
%e | float * | 浮動小数点 |
%g | float * | 浮動小数点%e、%fのうち短いほう |
%p | void ** | ぽいんた |
%n | int * | ここまで表示した文字数を変数のほうに代入する(普通とは逆方向) |
手順は、
FILE *という型があります。これはファイルの場所を示すポインタの型です。
FILE *fp; fp=fopen("./hoge.html","w"); /* ↑ファイル名,↑書き込みモードであることを示す。 */とやってファイルを作り、
char hoge[256]; fprintf(fp,"\n\n"); scanf("%s",hoge); fprintf(fp,"ファイルに書き込み\n%s\n
\n",hoge); fprintf(fp,"\n\n");
fclose(fp);とやって、とじれば、hoge.htmlというファイルができます。
ファイルからの入力も同様にできます。