lC言語 表示してみる '96. 8.12  
l.お知らせ 内容 LINK FILE   HTML Win PC Unix MS-DOS C C++ Mfc Java 
.C言語_ 3 フォ-マットコ-ド 6 演算子 9 FOR  集合デ-タ  目的別
1 表示してみる 4 変数と定数 7 条件判断 10 WHIILE  ポインタ     
2 エスケ-プ コ-ド 5 デ-タ入力 8 分岐   未使用  関数   ★ 
表示する  文字  変数  文字と変数  文字変数  文字配列 
その他  プログラムを止める方法  備考  
 

↓クリックするとページ先頭を表示します。
文字を表示する
ABC と表示するプログラムの例です。
/*〜*/はコメント(説明)を書くための記号です。
/*〜*/は、HTML タグの<!--〜-->と同じように、実際には何の働きもしません。
stdio.h をインクルードし、
main 関数を作って、その中に必要な処理を書きます。

 ABC.c
#include<stdio.h>    	/* まず、ここに stdio.h を挿入します。 */
void main( )  		/* 以下、処理の内容を { } の中に書きます。*/
{ 	  	  	/* main の始まりを示します。 */
  printf("ABC\n"); 	/* 具体的なプログラムの内容です。 */
  printf("DEF\n"); 	/*	〃			*/
} 	  	  	/* main の終りを示します。 */
このようなソースファイルを作り、例えば ABC.c と名前を付けて保存します。
コンパイルして実行すると ABC と表示されます。

ABC の部分は、自分の名前など、他の文字列に変えて表示できます。スペースやタブも使用できます。

\n は改行を表す記号で、エスケープコードと呼ばれます。


変数を使って表示する
 ABC.c
#include<stdio.h>    	/* stdio.h を挿入します。 */
void main( )
{
  int X;		/* あらかじめ、使う変数を宣言します。 */
  X = 123;		/* X に、123 を代入します。*/
  printf("%d\n",X);	/* X を 10進数で表示します。*/
}
int は、変数の種類(変数の型)を指定しています。
int は、-32768〜32767 までの範囲の整数を表す種類という意味です。

%d は、" " の後に書かれている変数を、十進数で表示する記号で、 フォーマットコードと呼ばれます。
" " の中の フォーマットコード %d は、" " の後の変数 X に変えて表示されます。


文字と変数を組み合せて表示する
" " の中の %d 以外の文字は、普通に表示されます。
 ABC.c
#include<stdio.h>    	/* まず、ここに stdio.h を挿入します。 */
void main()  		/* 以下、処理の内容を { } の中に書きます。 */
{
  int X = 123;		/* X を宣言し、123 を代入します。*/
  printf(" Xの値は %d です。",X);	/* X を 10進数で表示します。*/
}


文字変数を使って表示する
A などの半角文字は char 型の変数に代入できます。
文字として表示するには、%c を使います。
%d を使うと、文字ではなく、その文字コードが 10進数で表示されます。
 ABC.c
#include<stdio.h>    	/* stdio.h を挿入します。 */
void main()
{
  char X;		/* あらかじめ、使う変数を宣言します。 */
  X = 'A';		/* X に、文字 A を代入します。*/
  printf("%c\n",X);	/* 文字 A を表示します。*/
}
' ' は、文字のコード(文字を表わす番号) を取り出す記号です。
' ' を使わない場合は、X=65; のように文字のコードを書く必要があります。


文字配列を使って表示する
文章は、文字の配列として扱います。
などの全角文字は、一文字で配列の要素をふたつ使います。
 ABC.c
#include<stdio.h>    		/* stdio.h を挿入します。 */
void main()
{
  char X[12] = "あいうえお\n";	/* 変数の宣言と初期化。 */
  printf("%s",X);	/* X を文字列として表示します。*/
  printf(X);	/* 文字配列の場合は %s を省略できます。*/
}
%s は、文章(文字列)として表示する指定です。
printf() は文字列を表示するために使うことが多いので、最初の例のように %s を使わない書き方が用意されています。

配列には代入はできません
代入できるのは、変数の宣言と同時に行う場合だけです。
変数の宣言と同時に行う代入は、初期化といいます。

変数の宣言後に改めて代入するには
X[0]='A'; X[1]='B'; のように、配列要素に一個ずつ代入します

または、文字列コピー関数 strcpy() を使ってコピーします。
#include<stdio.h>    		/* stdio.h を挿入します。 */
#include<string.h>    		/* string.h を挿入します。 */
void main()
{
  char X[12]			/* 変数の宣言。 */
  strcpy( X, "あいうえお\n");	/* 変数の初期化。 */
  printf("%s",X);	/* X を文字列として表示します。*/
}
配列の大きさ 12 は、5×2(あいうえお)+1(\n)+1(\0) です。
\0 は、文字列の終りを表す記号で、コピーしたときなどには勝手に付けられます。
printf() は、\0 までを表示します。
"あい\0うえお" では、"あい" までしか表示されません。

配列の大きさに注意!
上記の例では X[25]='Z'; のように、配列の大きさを越えた代入ができます。
普通はこのような代入をすると、別なデータが消されるので誤動作します。
printf() は、\0 までしか表示しませんから、配列を大きくする分には問題はありません。



メモ : ひとつの仕事を表わす printf("ABC\n"); などの部分を式といいます。
  1. 式の終りには必ず ; を書きます。
  2. 式と式の間には、スペース タブ ; をいくつでも書けます。
    ただし、スペースには半角スペースを使用します。
  3. ソースファイルに1文字でも間違いがあると正しくコンパイルされません。
  4. 式を構成している単語と単語の間には、スペース,タブを書けます。
    printf("ABC\n"); は次のように書くことができます。
    printf ( "ABC\n" ) ;

    ひとつの式を二行に分けて書くときは、単語の区切りで分けます。
    printf ( "%d",
    X ) ;

    文字列を二行に分けて書くときは、行末に \ を書きます。
    printf ( "ABC\
    DEF" );

  5. 同じ行に複数の式を書くことができます。
    printf("ABC\n"); printf("DEF\n");

  6. 複数の式をまとめる場合は、main{ } のように、{ } で囲みます。

メモ : 保存する理由
メモ帳などのエディタを使ってソースプログラムを書くと、その文章は、保存するまではメモ帳プログラムのデータです。
実行ファイルに変換するためには、ソースプログラムをコンパイラプログラムが読むことができるように、ファイルとして保存します。


重要参考事項プログラムを止める方法
コンピュータはプログラムに書かれた通りの仕事をします。
間違ったプログラムを作るとプログラムが終了しなくなります。
強制終了させる方法を知っておく必要があります。

実行中のプログラムを終了させるには、Ctrl+C を実行します。
( Ctrlキーを押し、Ctrlキーを押したまま C キーを押します。)
Ctrl+C で終了できるプログラムの場合は、パソコンへの被害はまずありません。
シフトキー】Ctrl キーや Shift キーなどは、シフトキーといいます。
 シフトキーは、そのキーを押している間だけ他のキーの働きを変えます。
 シフトキーだけでは何の働きもしません。

Ctrl+C で終了できない場合は、Ctrl+Alt+Del で終了します。
( PC9801 の場合は、CTRL+GRPH+DEL)
Ctrl+Alt+Del→終了をクリック→終了をクリック の順です。
この場合は、メモリの内容が壊れている可能性があります。
(メモリが壊れるのではありません。メモリ=コンピュータのノート に書かれている内容が、間違ったプログラムによって書換えられてしまい、コンピュータが正しく仕事をできない状態。)

それでも終了できない場合は、....
パソコンのリセットスイッチを押します。
この場合は、完全にメモリの内容が壊れています。



備考 : コンパイラとインタープリタ
ソースファイルは文章ですから、Cの場合そのままでは実行できません。
コンピュータが実行できるようにコンパイルする必要があります。
このように、ソースファイルを実行ファイルにコンパイルするためのプログラムは、コンパイラと呼ばれます。

なお、BASIC や UNIX の perl などは実行ファイルへの変換をしませんが、その場合はプログラムを単独で実行することはできません。
( VisualBasic などは別です。VisualBasic は実行ファイルを作ります。)
BASIC や perl がソースファイルを自分のデータとして1行ずつ処理していきます。
このように自分のデータとして処理するプログラムはインタープリタと呼ばれます。

コンパイルされた実行プログラムは単独で実行できますから、Cを持っていない人のパソコンでも動作します。
これに対してインタープリタのプログラムは、BASIC や perl を持っていないパソコンでは実行することができません。


プログラムを書くのはプログラムの一部だけインクルードファイル
上記の例では ABC と表示するために、printf という関数を使っています。
printf("ABC\n");
この関数は自分で作ってもよいのですが、Cに用意されているので、それを使った方が簡単です。

Cの関数を自分のプログラムで使うためには、それを自分のプログラムにコピーする必要があります。
printf などの基本的な関数は stdio.h というファイルに入っていますので、それをまるごと自分のプログラムにインクルード(挿入)します。
このような、ソースファイルにインクルードするために作られたファイルは、インクルードファイルといいます。
インクルードファイルはソースファイルの先頭に挿入されるので、ヘッダ(header)ファイルとも呼ばれます。

ソースファイルはコンパイルされる前に、コメントの部分が取り除かれたり、インクルードファイルが書き加えられます。
プリプロセッサというプログラムがこのような前処理をして、ソースファイルを $$$ というような名前のファイルに変換します。
このようなファイルはテンポラリファイル(一時ファイル)とよばれます。

#include<stdio.h>
#include は、指定したファイルの中身をその位置にコピーする命令です。
<stdio.h> の <> は、stdio.h を \include と言う専用のディレクトリからコピーするときに使います。
<> の代わりに "" も使用できますが、"" はソースファイルと同じディレクトリからコピーするときに使います。
< > と " " の働きは同じですが、このように使い分けるのが慣例のようです。

自分でインクルードファイルを作る場合は、拡張子は h または c にします。
普通は インクルードファイルの拡張子は h にするのが慣例です。

もし、\include またはソースファイルがあるディレクトリ 以外のディレクトリのファイルをコピーするときは、ディレクトリを指定する必要があります。
例 #include "D:/C86/TXT3/SAMP_01.h"
このように、ドライブ名から始まるフルパスで指定します。
/ は、\ の代わりです。
C言語のソースファイルでは、\ の文字は特別な用途に使用されます。
\ が使えないのでので、代わりに / を使います。


プログラムを書くのはプログラムの一部だけ動作の中心 main 関数
Cのプログラムでは、実行プログラムの本体はCコンパイラが作ります。
ここの例ではCは ABC.exe という実行ファイルを作ります。 プログラムの本体は、一番最初に main という関数を呼び出すように作られます。

 ABC.c
#include<stdio.h>	/* まず、ここに stdio.h を挿入します。 */
void main()		/* 以下、処理の内容を { } の中に書きます。 */
{			/* main の始まりを示します。 */
  printf("ABC\n");	/* 具体的なプログラムの内容です。 */
  printf("DEF\n");	/*	〃			*/
}			/* main の終りを示します。 */
このプログラムには、main の他に #include の中に printf 関数などがあります。
main よりも先に、stdio.h の中に printf() が先に書かれていますが、ABC.exe は一番最初に main を呼び出します。
プログラムは main という関数を作って、その中に処理したい内容を書きます。
main() の中で、printf() などを呼び出します。(使用します。)

備考 : 一番最初に main() 関数を呼び出す理由。
プログラムは普通、使用するデータを先に書いて、その後に データを処理するプログラムを書きます。
また関数を使用するときは、使用する関数は、使用位置よりも前に書きます。
プログラムの一番最初の仕事の位置がわかるように、一番最初の仕事は main() に書きます。

一番最初に main() 関数を呼び出すことに決めてあるので、コンパイルする度に最初の呼出し位置を指定する必要がありません。



C言語 1 表示してみる 2 エスケ-プ コ-ド
 
  mtoga@sannet.ne.jp   登録日 '96. 6.15
URL : http://www.page.sannet.ne.jp/mtoga/index.html