MMGamesロゴ  MMGames
Twitterシェアボタン  Facebookシェアボタン   
 English 

しんで覚えるC言語
しんで覚えるC言語

文字列の表示

どうしても必要
これから、画面に文字列を表示する方法を解説します。
それは、この後、色々な解説を行うのに、どうしても必要だからです。

プログラムで色々な処理をさせることは実は簡単なのですが、
それを人間にわかるようにするのは、意外と難しいことです。
なぜなら、コンピュータ内部の処理は電気信号の流れでしかないからです。

しかし、幸いなことに、現在では、それが容易に実現できます。
コンピュータには、ディスプレイがついています。
ですから、処理の内容を、ディスプレイに表示させれば良いのです。

処理の内容が表示されないと、プログラミングの学習は成り立ちません。
プログラムが、何をやり、そしてどうなったのか、それがわからないからです。

したがって、今後のプログラミング学習のためには、
どうしても、画面に文字列を表示する方法を学んでおく必要があります。
つまり、画面に文字列を表示させるのは、学習のための準備なのです。
printf関数
C言語で文字列を表示するには、printf(プリントエフ)関数を使います。
printf関数は、次のようにして使います。

ソースコード
printf("文字列");

たとえば、HelloWorldと表示させたい場合、次のようにします。

ソースコード
printf("HelloWorld");

この文をプログラムの中に書けば、画面に HelloWorld と表示されます。

ところで、この文は、一体どこに書けばいいのでしょうか?

HelloWorldプログラム
HelloWorldは、ほとんどの入門書に登場します。
その意味では、世界一有名なプログラムだと思われます。

どこに書くのか?
前項で説明した通り、printf関数を使えば、画面に文字が表示されます。
しかし、始めにも説明したように、C言語は、main関数から始まります。
つまり、printf関数だけでは駄目であり、必ずmain関数が必要です。

とりあえず、始めに作った、main関数のプログラムを思い出してみます。

ソースコード
int main(void)
{
    return 0;
}

C言語は、main関数から始まることは説明しましたが、
その関数の中で、どんな順番でプログラムが動くのかは説明しませんでした。

関数の中では、単純に、上の文から順番に動いていきます。
そして、return文に到達すると、そこで関数の実行は終了します。

たとえば、次のようなプログラムがあったと仮定した場合、

ソースコード
int main(void)
{
    文1;
    文2;
    return 0;
    文3;
}

プログラムは、文1->文2、という順番で動きます。
文3に到達する前に、return文で関数が終わるので、文3は無視されてしまいます。

このことから考えると、printf関数を書くべき場所がわかります。
つまり、次のように書けば良いことになります。

ソースコード
int main(void)
{
    printf("HelloWorld");
    return 0;
}

説明書の取り込み
前項で、printf関数を使ったプログラムは完成したはずなのですが、
実は、このプログラムは準備不足なので、動かしても画面に文字は表示されません。
一部のお節介を焼くコンパイラでは動いてしまいますが・・・

実は、printf関数は、C言語自体の機能ではありません。
言い換えるならば、C言語のコンパイラは、printfという関数のことをまったく知りません。
したがって、ただprintf関数を記述しただけでは、動かないのです。
動作させるには、コンパイラにprintf関数の説明書を読ませなければなりません。

C言語には、説明書を渡すための特別な命令が用意されています。
それは、#include(インクルード)疑似命令です。
#include疑似命令は、次のようにして使うことができます。

疑似命令
疑似命令とは、プログラムコードではない命令のことです。
#includeはprintf関数などの準備をする命令なので、
この命令は機械語に翻訳されず、その前段階で処理されます。


ソースコード
#include <説明書のファイル名>

```
printf関数の説明書は、stdio.h と言うファイルです。
つまり、次のようなプログラムを追加すれば、printf関数を使えるようになります。

ソースコード
#include <stdio.h>

ところで、この命令はどこに書けば良いのでしょうか?
プログラムの説明書を渡すのですから、プログラムが実行される前である必要があります。
プログラムが実行されてしまったあとでは、説明書を渡しても手遅れなのです。

このことから考えて、1番先頭(main関数よりも先)に書くのが良さそうです。
つまり、printf関数で画面に文字列を表示するプログラムは、次のようになります。

ソースコード
#include <stdio.h>

int main(void)
{
    printf("HelloWorld");
    return 0;
}

なお、#includeは疑似命令なので、関数の外側に書くことができます。
お待たせしました
皆様、長らくお待たせいたしました。
これでやっと、画面に文字列を表示するプログラムが完成しました。

ソースコード
#include <stdio.h>

int main(void)
{
    printf("HelloWorld");
    return 0;
}

このプログラムの実行結果は、次のようになります。

実行結果
HelloWorld


苦Cの方針
一般的なC言語の入門書では、1章からここまでの説明をすべて飛ばして、
いきなり上記のプログラムを紹介していることが多いようですし、
#include はおまじないだとして説明を後回しにするようです。
初めに余計なことを説明すると混乱するとも言われるので
どちらの方針が正しいのかはわかりませんが、
筆者としては、できる限りの説明を行う方針でいきたいと思います。



本サイトについて

苦しんで覚えるC言語(苦C)は
C言語入門サイトの決定版です。
C言語の基本機能を体系立てて解説しており、
市販書籍と同等以上の完成度です。

第0部:プログラム概要編
  1. プログラムとは何か?
2章:プログラムの書き方
  1. 書き方のルール
  2. 書き方の慣習
  3. 練習問題2
3章:画面への表示
  1. 文字列の表示
  2. 改行文字
  3. 練習問題3
6章:キーボードからの入力
  1. 入力用の関数
  2. 入力の恐怖
  3. 練習問題6
9章:回数が決まっている繰り返し
  1. 繰り返しを行う文
  2. ループ動作の仕組み
  3. 練習問題9
10章:回数がわからない繰り返し
  1. 回数不明ループ
  2. 入力チェック
  3. 練習問題10
13章:複数の変数を一括して扱う
  1. 複数の変数をまとめて扱う
  2. 配列の使い方
  3. 練習問題13
20章:複数のソースファイル
  1. 最小限の分割
  2. 分割の定石
  3. 練習問題20

コメント
COMMENT

💬 コメント投稿欄を開く