#include<stdio.h>
main(){
printf("Hello work!");
printf("Hello work!");
}
第1回のプログラムとの相違点は、見ての通りprintfの行が2つ存在する(3、4行目)事です。
これをコンパイルして実行する前に、まずは実行結果を想像してみることにしょう。貴方が、C言語の予備知識が全く無い方であれば、恐らく、
Hello work!
Hello work!
と出力されると思ったのではないでしょうか?っていうか、思ったことにして下さい。(^_^;でないと話が終わっちゃうんで。
多分、C言語を知らなくても、ホームページを作った経験がある人だったらピンときたかもしれません。そう、このプログラムの出力結果は、
Hello work!Hello work!
です(まぁ、何も出力されない場合もありますけど)。つまり、Hello workとHello workの間が改行されず、1行で出力されるのです。これは、ホームページ作成時、HTMLドキュメント上の改行は無視され、あくまでブラウザ上で改行されるのは<BR>タグのところであるのと同じ理由です。 つまり、改行する為には改行する為の何かが必要だという事なのです。その何か、つまりHTMLにおける<BR>に当たるのが、printfでは、\nです。以下のプログラムを参考にして下さい。
#include<stdio.h>
main(){
printf("Hello work!\n"); /* \nを付けて改行 */
printf("Hello work!");
}
実行結果:-)
Hello work!
Hello work!
それと、3行目に/* \nを付けて改行 */を付け加えました。これはコメントといって、プログラムに簡単な説明を付けたい時等に使います。/*と*/の間の文章は、コンパイラが無視するので、コンパイル時にエラーとなりません。もちろん/*と*/の間に改行が入っても構いません。例えば、
#include<stdio.h>
main(){
/**********************************
* '\n' Test! *
* YXA '98 *
**********************************/
printf("Hello work!\n");
printf("Hello work!");
}
なんていうのもOKです。:-)
で、話を\nに戻します。改行以外にも、まだまだたくさんの制御文字がありますが、どれも頭に\が付くのが特徴です。
\a BEEP音を鳴らす \t タブ \" "を出力 \\ \を出力等々、まだまだたくさんあります。で、実際printfでこれらの制御文字を無造作に用いた文字列を出力してみることにします。 以下のプログラムをコンパイルして、実行してみて下さい。
#include<stdio.h>
main(){
printf("\aHe\nllo\t wor\"k\t!\"\n"); /* 制御文字使いまくり */
}
実行結果は、BEEP音と共に、
He
llo wor"k !"
と出力されます。
というわけで、今回はこれくらいにします。次回は、printfの真骨頂ともいうべき(って大袈裟か)変換文字について学習することにしましょう。