画面に文字を出力する方法は色々あります。printfが一番汎用的に使えるのではじめに紹介しましたが、その他の方法も知っておくと色々便利です。
以下、すべて、標準入出力ヘッダファイル(stdio.h)をインクルードする必要があります。
1文字を出力する関数です。
int putchar(int c);
↑は関数の定義です。putcharはint型の引数をとり、int型の値を返す、ということを意味しています。
「c」のところに表示したい文字を入れます。「putchar('a')」など。
下はAが1文字表示され、改行されるプログラムです。1)Aの表示、2)改行、と2回putcharを使用しています。
#include <stdio.h> int main(){ putchar('A'); putchar('\n'); return 0; }
注意:C言語では「1文字」と「文字列」とは明確に区別されます。「1文字」の場合はシングルクオーテーション「'」を使うことに注意してください。ダブルクオーテーション「"」ではエラーになります。
/* エラーになるプログラム */ #include <stdio.h> int main(){ /* ダブルクオーテーションを使用しているのでエラー */ putchar("A"); putchar("\n"); return 0; }
文字列を出力する関数です。printfのようにフォーマット指定してint型変数を混ぜて出力することはできません。
また、文字列出力後、必ず改行します。
int puts(const char *s);
「*s」のところに文字列を入れます。「puts("ABCDEFG")」など。なお、「*」はポインタを意味しますが、詳細はポインタのページで。
#include <stdio.h> int main(){ puts("This is a pen."); return 0; }
今度は文字列なのでダブルクオーテーションです。シングルクオーテーションではエラーになります。
fprintfは本来ファイルに出力するための関数です。
int fprintf(FILE *stream, const char *format, ...);
(この関数については後の章で詳しく扱います。)
ただ、エラー出力する場合に、*streamにstderrなどを指定して出力するという方法がよくとられます。以下の例ではまだ触れていない内容が入っていますが、気にしないでください。
#include <stdio.h> int main(){ FILE* fp; if((fp = fopen("AIUEO.txt", "r")) == NULL){ /* エラーになったとき */ fprintf(stderr, "File Open Error\n"); return 1; } fclose(fp); return 0; }
一応上のプログラムを解説しますと、AIUEO.txtファイルを読み込み用で開いて閉じるプログラムで、開く処理に失敗した場合は(要はファイルが存在しなかった場合)、エラー出力するという処理が組み込まれています。エラー出力にはfprintf()を使用しています。
/* */で囲んだ場所はコメントといい、プログラムの実行には影響しません。その付近で何をしているのかというのをわかりやすくしたり、後で思い出せるようにしたりするために記述します。
なお、エラーになった場合「return 1」としていますが、一般に、メイン関数の返り値は「正常終了 = 0、異常終了 = 1」とすることが多いです(それがすべてとは限りません)。