工事中

よく使うライブラリ

ライブラリは関数たちで、既にコンパイルしてあります。 それをコンパイル時にリンクすることで、プログラムがその関数を使うことができます。 ライブラリに有る関数を使うときにその名前が今まで一度も宣言されていないとコンパイラはびっくりしてしまいます。
ですから、ライブラリに書いてある関数の宣言をまとめて書いておくことが必要です。 ライブラリに書いてある関数の宣言をまとめて書いて書いてあるヘッダファイル〜.hを ソースファイルに差し込む(includeを使う)ことでこれが可能となります。

詳しくはCの文法書をみてください。C++に特有の関数もあります。 ほかにグラフィックのライブラリなどがあれば、様々なグラフィックの関数が使えます。
使える関数はたくさんありますし、使える定数もたくさんあります。
本来なら機種に依存してしまうような命令を〜.hの中やライブラリに押し込めて、 ソースファイルのほうは機種に依存しないようにするという考えによっています。
標準入出力関数
必要なヘッダ:<stdio.h>
  内容  :ターミナルウィンドウ上での文字の入出力およびファイルの入出力
数学関数
必要なヘッダ:<math.h>
  内容  :sin(),log(),sqrt()などの数学の関数
文字列処理
必要なヘッダ:<string.h>
  内容  :文字列の処理
標準ユーティリティ
必要なヘッダ:<stdlib.h>
  内容  :Cにおけるメモリーの確保とか乱数とか数値の変換とかいろいろ雑用をする。

標準入出力関数

標準入出力関数は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

さて、画面の入出力から

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とかいてあります。
%dint10進整数(符号付)
%iint%dとおなじ
%ounsigned int8進数(符号なし)
%xunsigned int16進数(符号なし)
%uunsigned int10進数(符号なし)
%cint一文字
%schar *文字列
%fdouble浮動小数点
%edouble浮動小数点
%gdouble浮動小数点%e、%fのうち短いほう
%pvoid *ぽいんた
%nint *ここまで表示した文字数を変数のほうに代入する(普通とは逆方向)
%%%自身を表したいときはこうする。
%Xunsigned int%xとおなじ。大文字で表示される
%Edouble%eとおなじ。大文字で表示される。
%Gdouble%gとおなじ。大文字で表示される。
覚えることに快感を覚える人は覚えておきましょう。
あわてすぎてのどに詰まらせないように注意しましょう。

scanf

scanfはこう使います

char hoge[256];
int i;
scanf("name:%s hoge:%d\n",hoge,i);
		
とすると、
name:foo hoge:123
		
という入力がはいるのを待ちます。これを入力するとhoge[]には"foo"が入り、iには123が入ります。 scanfでは
%dint *10進整数(符号付)
%iint *%dとおなじ
%ounsigned int*8進数(符号なし)
%xunsigned int*16進数(符号なし)
%uunsigned int*10進数(符号なし)
%cint *一文字
%schar *文字列
%ffloat *浮動小数点
%efloat *浮動小数点
%gfloat *浮動小数点%e、%fのうち短いほう
%pvoid **ぽいんた
%nint *ここまで表示した文字数を変数のほうに代入する(普通とは逆方向)
となります

ファイル

手順は、

  1. ファイルを様々なモードでオープンしてファイルの先頭を示すポインタをゲットする。
  2. 最初に指定したモードの制限のもと。書いたり。読んだり。
  3. ファイルを閉じる。
となります。まず
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というファイルができます。

ファイルからの入力も同様にできます。

任意の文字列

数学関数

sin,cos,tanなどの三角関数等をつかえます。 sqrtとかもこれです。