アットウィキロゴ
 

1.1標準出力関数


 さて、プログラムを作りましょう!。
 前回のセクションで言った通り、作業用ディレクトリに移ってからEmacsを起動してください。

 今回は、標準出力関数の使い方を習得していただきましょう。

 標準出力関数と言うのは、端末に文を表示する関数です。用途としては、プログラムが計算などして出した結果などを表示するのに使います。
 その関数の名前はprintf関数といい、C言語において文字列等を表示するには基本的にこの関数を使用します。
(C言語における関数という物は難しく考えずに、プログラムにさせる処理や内容のことだと思ってください。^ ^;)
 使い方は以下のとおりとなっております。

printf("表示したい内容");

 このように、表示したい内容をダブルクォーテーション「"~"」で囲みます。また、表示する内容の中には全角文字も可能です。
 また、printfは関数なので命令の最後にセミコロン「;」を付ける必要があります。

 では、実際にprintf関数を使用して文字列を表示してみましょう。
 以下のコードをEmacsに打ち込んで、コンパイル・実行してみてください。
  1. #include <stdio.h>
  2.  
  3. int main(void){
  4.  printf("Hello World.\n");
  5. }
  6.  
 うまくいったら、プログラムを実行したとたんに端末に以下のような表示がされるはずです。

Hello World.

 実行してみると、printf関数内でダブルクォーテーションで囲んだ文である「Hello World.」が出力されました… このようにしてC言語では文を出力します。
 しかし、実行したところ一点不審なところがあります…

\nが表示されていないだと…! (゚Д゚llil)

 その通りです!\nも書き込んだハズなのに表示されていないのです!何故だ…!

 実は… この\n「改行」を表しているのです。
 実は、C言語ではprintf関数を分けて書いたからって、文字自体は一切改行されません。
 この\nを書いたところで端末に出力される文字は改行されて次の行に表示されます。つまり改行を表すだけの文字なので、この文字は表示されません。

 例えば、次のようなソースをプログラムにして実行すると
  1. #include <stdio.h>
  2.  
  3. int main(void){
  4.  printf("ここで\n改行されるよ\n");
  5.  printf("一回のprintf関数で\n何度も\n改行できます\n");
  6. }
  7.  

 以下のように文字が出力されます。

ここで
改行されるよ
一回のprintf関数で
何度も
改行できます。

 これで、「\n」を書き込んだところで文は改行されるということが分かりましたね。

エスケープ文字


 この、「\n」みたいに、記述したところに表示されなくて、記述した文字列の中の場所で特殊な操作をする文字のことを、エスケープ文字と言います。基本的にエスケープ文字は「\」から始まります。

 また、このエスケープ文字は改行・バックスペースやタブなどみなさんが文章を編集するときなどに使用するキーボードのボタンにある機能をprintf関数で文字列を扱う際に使用されております。

 みなさんは、文章を編集するときに文字入力カーソルを見ますよね?
 このエスケープ文字はprintf関数で文字を書く際におけるカーソルを操作するという感じです。(分かりやすく説明できる方法ないかな… ^^;)

 以下に、エスケープ文字を挙げてみました。全て覚える必要はありませんが、改行・タブ・文字の表示ぐらいは覚えておいた方が良いと思います。

\n 記述した場所で改行する。
\f 記述した場所で、端末に表示している内容をクリアする。
\a 記述した場所で、PCに内蔵されているベル(アラート)を鳴らす
\b 記述した場所から、1文字分戻る。
\r 記述した場所から、同じ行の先頭に戻る。
\t 記述した場所で、水平タブを実行する。
\v 記述した場所で、垂直タブを実行する。
\\ 記述した場所に、\を表示する。
\? 記述した場所に、?を表示する。
\' 記述した場所に、シングルクォーテーション(')を表示する。
\" 記述した場所に、ダブルクォーテーション(")を表示する。
\0 記述した場所に、ヌル文字を置く。
\N 記述した場所に、8進定数(Nは8進数の定数)を表示する。
\xN 記述した場所に、16進定数(Nは16進数の定数)を表示する。

では、次のセクションに入る前に練習問題をやっていただきましょう。

練習問題

①端末上で以下のように出力されるようなプログラムを作ってください。
この"フィギュア"は\12,000で売られていますか?
②端末上で以下のように出力されるようなプログラムを作ってください。(但しprintf関数は一回しか使用してはいけない。)






 では、次のセクションでC言語での計算を行う方法と変数の扱い方を習得していただきましょう!
最終更新:2010年01月24日 23:21